STM32微控制器通用定時器時基設定

定時器為微控制器中很重要的一個外設,這裡我們結合STM32CUBEIDE中的引數設定,分享下STM32CUBEIDE中定時器的時基設定。下圖為STM32CUBEIDE中定時器時基設定介面:

STM32微控制器通用定時器時基設定

STM32CUBE中定時器時基設定介面

定時器時基即設定定時器的計數週期。這裡我們主要需要設定兩個引數,一個是定時器的預分頻係數(圖示中:Prescaler,PSC預分頻器暫存器),另外一個為定時器的自動裝載值(圖示中:Counter Period,ARR自動裝載暫存器)。

一、定時器預分頻係數

定時器預分頻係數為對針對系統的內部時鐘週期進行分頻。如分頻係數設定為1,則定時器計數與系統內部時鐘週期一致,若分頻係數設定為2,則經過兩個內部時鐘週期定時器計數增加一次。具體可見下圖,當預分頻係數由1更改為2時計數器暫存器的反應。

STM32微控制器通用定時器時基設定

預分頻係數由1更改為2時的定時器時序圖

以此類推定時器計數週期=預分頻係數*內部時鐘週期。定時器預分頻係數對應暫存器PSC,

此暫存器為16位暫存器,其取值範圍為0-65535。

定時器預分頻係數=暫存器值+1

,故定時器預分頻係數取值為1-65536。

二、定時器預裝載值

定時器預裝載值可以理解成定時器的極值,等計數器計數值到此值時,計數器反轉,恢復到初始的計數數值。定時器預裝載值對應

暫存器ARR

,此暫存器也為16位暫存器,其取值範圍為0-65535。

STM32微控制器通用定時器時基設定

ARR暫存器設定為0X36時,計數器暫存器的跳變

三、定時器的頻率公式

根據以上分析我們可以得出定時器的頻率公式:

f=內部時鐘頻率/((ARR+1)*(PSC+1))

T=1/f

我們若希望此微控制器的定時器週期為1s,我們選用的STM32f103C8系列微控制器時鐘頻率為72MHz,則可以根據公式設定ARR,PSC的引數。例如設:ARR=7199,PSC=9999或ARR=9999,PSC=7199均可實現定時器週期為1S的要求。

以上就是設定定時器時基主要引數的內容,大家可以去試著設定下,以上傳設定影片,大家可觀看此連結影片:

定時器時基設定