理解STM32的時鐘是我們應用定時器等等的基礎,根據最近的工作總結一下:
下面是STM32的時鐘樹:
1.首先注意的的是圖中畫綠色圈圈的兩個,HSE和HSI分別表示外部時鐘和內部時鐘,其中HSE 是是高速外部時鐘,可接石英/陶瓷諧振器,或者接外部時鐘源,HSE 也可以直接做爲系統時鐘或者 PLL 輸入(從紅圈4處可以看出),頻率範圍爲 4MHz~26MHz。STM32默認爲25Mhz,像原子的板子就是8Mhz的,所以移植時一定要格外注意。
2.注意紅圈2代表的部分,這裏是主鎖相環倍頻輸出,用於產生系統需要的高速時鐘信號,如圖綠色箭頭所示(STM32還有一個副鎖相環,如紅圈3)
主 PLL 時鐘的時鐘源要先經過一個分頻係數爲 M 的分頻器,然後經過倍頻係數爲 N 的倍頻器出來之後的時候還需要經過一個分頻係數爲 P(第一個輸出 PLLP)或者 Q(第二個輸出 PLLQ)的分頻器分頻之後,最後才生成最終的主 PLL 時鐘。例如我們的外部晶振選擇 8MHz。同時我們設置相應的分頻器 M=8,倍頻器倍頻係數 N=336,分頻器分頻係數 P=2,那麼主 PLL 生成的第一個輸出高速時鐘 PLLP 爲:PLL=8MHz * N/ (M*P)=8MHz* 336 /(8*2) = 168MHz(來源:正點原子)
這篇文章也很好;http://blog.sina.com.cn/s/blog_7142d7da01014zwz.html