本文作者:Miler Shao 凡閱讀過STM32參考手冊定時器資料的人可能多少覺得它的龐大和復雜,不過這里不對其工作原理做介紹,只是對STM32MCU中各類定時器做個基本的框架性介紹。 我們知道,STM32系列MCU都是基于ARM核心處理器而設(shè)計出來的微處理器芯片,芯片可以簡單地看成由ARM 內(nèi)核處理器加上ST公司設(shè)計的各類外設(shè)組成。其中,ST公司設(shè)計的外設(shè)中就有各種定時器。這些STM32 MCU外設(shè)定時器一般可以分為16位的、32位,外加2個看門狗、RTC特殊定時器,定時器數(shù)量往往較多。其中16位、32位定時器按照功能特性又可分為通用定時器、高級定時器、基本定時器,此外,不少低功耗STM32系列還有低功耗定時器。 這里選擇比較有代表性的STM32L476xx芯片來認識下這些定時器。

上面表格羅列了三類定時器,給出了定時器的寬度,計數(shù)模式,捕捉比較通道數(shù)等。 基本定時器【basic timer】:實現(xiàn)定時器最基本的計數(shù)、定時功能。 通用定時器【General purpose】:在基本定時器的基本功能前提下,增加了對外輸入捕捉或比較輸出功能,但不能實現(xiàn)用于馬達應用的三對互補輸出。 高級定時器【advanced timer】:在通用定時器的功能前提下,增加了基于三相馬達驅(qū)動的三對互補輸出,帶死區(qū)應用和剎車管理。這樣的話,一個STM32高級定時器最多可以同時實現(xiàn)7路PWM輸出。 低功耗定時器:【low power timer】:從功耗角度來界定的,該類定時器可以工作在低功耗的STOP模式并具有MCU喚醒功能。它的時鐘一般來說跟上面三類不一樣。 STM32 MCU片內(nèi)除了上面提到的幾類定時器外,還有些特定應用功能的定時器,比如看門狗定時器,RTC定時器。 上面提到的外設(shè)定時器都屬于ST公司設(shè)計的,還有個來自于ARM CORTEX處理器內(nèi)部的定時器,SYSTICK定時器.
前面說過,STM32 MCU芯片由ARM處理器與ST外設(shè)模塊組成,而ARM處理器由內(nèi)核和處理器外設(shè)組成。下圖是ARM Cortex M4處理器的框圖: 比方我們熟知的NVIC、FPU、MPU、調(diào)試組件、SYSTICK等都是屬于核處理器外設(shè)。其中SYSTICK就是個24位向下計數(shù)的定時器。在STM32應用產(chǎn)品上用過RTOS的人可能清楚,往往用這個SYSTICK定時器作為系統(tǒng)滴答節(jié)拍。
有人說STM32的芯片參考手冊上沒有對SYSTICK定時器的描述,的確是這樣。SYSTICK定時器是ARM處理器里面的東西,詳細描述自然非ARM莫屬。類似NVIC、FPU、MPU、SYSTICK等ARM內(nèi)核外設(shè),在ARM公司提供的Cortex-Mx內(nèi)核參考手冊里有描述。網(wǎng)上有很多熱心人也做了詳細中文描述。
另外,STM32 MCU的低功耗芯片里除了有低功耗定時器【LP TIMER】外,還有低功耗UART【LP UART】。目前STM32L0和STM32L4系列里有LP TIMER和LP UART,有興趣的話可以去www.stmcu.com.cn或www.st.com/mcu 下載相關(guān)芯片資料了 解細節(jié)。

|