tim2-tim5的時鐘不是直接來自於apb1,而是來自於輸入為apb1的乙個倍頻器。這個倍頻器的作用是:當apb1的預分頻係數為1時,這個倍頻器不起作用,當apb1的預分頻係數為其他數值時(即預分頻係數為2、4、8或16),這個倍頻器起作用,定時器的時鐘頻率等於apb1的頻率的2倍。
分頻係數就是對定時器時鐘進行多少分頻之後在使用,最好設定為定時器時鐘的倍數,方便運算;
重新裝載值是計算這麼多值,時間到了之後重新開始計算的值,每一次計數的時間為分頻之後時鐘的到時;
假設定時器時鐘為72m,分頻係數設定為7200-1,那現在定時器的時鐘為10khz,每計乙個數花費1/(10000)秒,重灌值設定為5000-1,那一次溢位的時間為500ms。
time = ((period+1)*(prescaler+1))/sysclock
time:溢位時間(mhz)
sysclock:定時器時鐘(us)
period:重灌值
prescaler:分頻係數
time = ((4999+1)*(7199+1))/72 = 5000 000us = 500ms
STM32 定時器 定時時間的計算
假設 系統時鐘是72mhz,tim1 是由pclk2 72mhz 得到,tim2 7是由 pclk1 得到 關鍵是設定 時鐘預分頻數,自動重裝載暫存器週期的值 每1秒發生一次更新事件 進入中斷服務程式 rcc configuration 的systeminit 的 rcc cfgr uint32 t...
STM32 定時器 定時時間的計算
假設 系統時鐘是72mhz,tim1 是由pclk2 72mhz 得到,tim2 7是由 pclk1 得到 關鍵是設定 時鐘預分頻數,自動重裝載暫存器週期的值 每1秒發生一次更新事件 進入中斷服務程式 rcc configuration 的systeminit 的 rcc cfgr uint32 t...
STM32學習之 定時器時間計算
每1秒發生一次更新事件 進入中斷服務程式 rcc configura tion 的systeminit 的 rcc cfgr uint32 t rcc cfgr ppre1 div2表明tim3clk為72mhz。因此,每次進入中 斷服務程式間隔時間為 1 tim prescaler 72m 1 t...