参照STM32时钟树配置STM32CubeMX Clock Configuration(STM32L011G4U6为例)
微控制器(處理器)的運行必須要依賴周期性的時鐘脈沖來驅動——往往由一個外部晶體振蕩器提供時鐘輸入為始,最終轉換為多個外部設備的周期性運作為末,這種時鐘“能量”擴散流動的路徑,猶如大樹的養分通過主干流向各個分支,因此常稱之為“時鐘樹”。在一些傳統的低端8位單片機諸如51,AVR,PIC等單片機,其也具備自身的一個時鐘樹系統,但其中的絕大部分是不受用戶控制的,亦即在單片機上電后,時鐘樹就固定在某種不可更改的狀態(假設單片機處于正常工作的狀態)。比如51單片機使用典型的12MHz晶振作為時鐘源,則外設如IO口、定時器、串口等設備的驅動時鐘速率便已經是固定的,用戶無法將此時鐘速率更改,除非更換晶振。
而STM32微控制器的時鐘樹則是可配置的,其時鐘輸入源與最終達到外設處的時鐘速率不再有固定的關系,本文將詳細解析STM32微控制器的時鐘樹和STM32CubeMX?Clock Configuration的配置關系。
STM32時鐘樹中有6種時鐘源,如下所示:
- HSE:高速外部時鐘;
- LSE:低速外部時鐘;
- HSI:高速內部時鐘;
- LSI:低速內部時鐘;
- MSI:多速內部時鐘;
- PLLCLK:鎖相環倍頻輸出。
以STM32L011G4U6微控制器為例,時鐘樹如下,左側為6種時鐘源時鐘,經過一些運算和轉換到達右邊的系統時鐘和外設時鐘。
時鐘樹并不難讀懂,沿著導線耐心一步步可以很快理解,例如系統時鐘可支持MSI、HSI16、HSE和PLLCLK四種時鐘源配置,其中HSI16時鐘源可支持倍頻器分頻(1倍和4倍),PLLCLK鎖相環倍頻輸出可支持HSI16和HSE時鐘源兩種時鐘源配置,并且進行倍頻輸出(預分頻寄存器和時鐘倍頻寄存器配置)。
此時打開STM32CubeMX,選擇STM32L011G4U6微控制器,打開Clock Configuration,可以發現和STM32L011G4U6時鐘樹基本一致,選擇合適的時鐘源和倍頻,即可便捷快速實現相關配置(時鐘頻率越低,功耗越小,過低可能部分外設無法驅動)。
需要注意,部分配置不可選是由于沒開啟相關的IO配置,例如HSE時鐘源。
開啟相關IO配置即可。
總結
以上是生活随笔為你收集整理的参照STM32时钟树配置STM32CubeMX Clock Configuration(STM32L011G4U6为例)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NB-IoT模组低功耗设计:DRX、eD
- 下一篇: GitHub开源:狗屁不通文章生成器