STM32定時器參數設置(TIM_Prescaler、TIM_Period)

TIM_Prescaler
定時器預分頻器設置,時鐘源經該預分頻器纔是定時器時鐘,它設定 TIMx_PSC寄存器的值。可設置範圍爲 0 至 65535,實現 1 至 65536 分頻。.net

TIM_Period
定時器週期,實際就是設定自動重載寄存器的值,在事件生成時更新到影子寄存器。可設置範圍爲 0 至 65535。code

根據定時器時鐘的頻率,好比時鐘的頻率是72MHZ,能夠理解爲一秒鐘STM32會本身數72M次,預分頻係數就是將頻率分割,好比分頻係數是72,則該時鐘的頻率會變成72MHZ/72=1MHZ,可是在設置的時候要注意,數值應該是72-1。blog

假定分頻係數是72-1,那麼頻率變成1MHZ,也就意味着STM32在一秒鐘會數1M次,即1us數一次。事件

好了,接下來就是肯定預裝載值,好比須要定時1ms,因爲1ms=1us*1000,那麼預裝載值就是1000-1;如此類推,在預分頻係數肯定的狀況下,定時的時長就由預裝載值肯定了。至於要把值減一的緣由,估計是計數是從0開始,因此要減一。get

原文連接:https://blog.csdn.net/ZIIllII...io

//對於71MHZ的頻率,500ms中斷一次,這兩個參數設置以下:
TIM_Prescaler=7199;   //預分頻值
TIM_Period=4999;    //下一個更新事件裝入活動的自動重裝載寄存器週期的值

   //分頻7200,用72000000/7200=10000Hz
   //此時的週期就是1/10000=0.0001s
   //500ms=0.0001s*5000次
   //5000-1=4999次
   //即經過4999次系統的運行,就是500ms