天天看點

參照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種時鐘源時鐘,經過一些運算和轉換到達右邊的系統時鐘和外設時鐘。

參照STM32時鐘樹配置STM32CubeMX Clock Configuration(STM32L011G4U6為例)

時鐘樹并不難讀懂,沿着導線耐心一步步可以很快了解,例如系統時鐘可支援MSI、HSI16、HSE和PLLCLK四種時鐘源配置,其中HSI16時鐘源可支援倍頻器分頻(1倍和4倍),PLLCLK鎖相環倍頻輸出可支援HSI16和HSE時鐘源兩種時鐘源配置,并且進行倍頻輸出(預分頻寄存器和時鐘倍頻寄存器配置)。

參照STM32時鐘樹配置STM32CubeMX Clock Configuration(STM32L011G4U6為例)

此時打開STM32CubeMX,選擇STM32L011G4U6微控制器,打開Clock Configuration,可以發現和STM32L011G4U6時鐘樹基本一緻,選擇合适的時鐘源和倍頻,即可便捷快速實作相關配置(時鐘頻率越低,功耗越小,過低可能部分外設無法驅動)。

參照STM32時鐘樹配置STM32CubeMX Clock Configuration(STM32L011G4U6為例)

需要注意,部配置設定置不可選是由于沒開啟相關的IO配置,例如HSE時鐘源。

參照STM32時鐘樹配置STM32CubeMX Clock Configuration(STM32L011G4U6為例)

開啟相關IO配置即可。

繼續閱讀