01 前言
在嵌入式系統(tǒng)中時鐘是其脈搏,處理器內核在時鐘驅動下完成指令執(zhí)行,狀態(tài)變換等動作。外設部件在時鐘的驅動下完成各種工作,比如串口數據的發(fā)送、A/D轉換、定時器計數等等。
02 STM32時鐘源
-
HSI是高速內部時鐘,RC振蕩器,頻率為8MHz。
-
HSE是高速外部時鐘,可接石英/陶瓷諧振器,或者接外部時鐘源,比較常用的8MHz 12MHz 25MHz。
-
LSI是低速內部時鐘,RC振蕩器,頻率為40kHz。
-
LSE是低速外部時鐘,接頻率為32.768kHz的石英晶體。
在STM32中每個外設都有其單獨的時鐘,在使用某個外設之前必須打開該外設的時鐘 ,為什么要這么麻煩來設置每一個外設的時鐘而不是將所有外設的時鐘統(tǒng)一打開?因為STM32的外設繁多,外設的運作所需要的最佳時鐘各不相同,如果所有時鐘同時運行會給MCU帶來極大的負載,所以STM32為了實現低功耗,而設計的功能完善構成復雜的時鐘系統(tǒng),稱之時鐘樹。使外設功能的時鐘可自配置。
03 STM32 時鐘樹
▲ 圖源網絡
-
上圖下紅框中LSE和LSI是提供給系統(tǒng)看門狗和RTC(實時時鐘)使用的。如果需要精度較高的RTC時鐘,需要使用LSE,頻率為32.768K提供一個精確的時鐘源。
-
HSI為8M,和HSE相比精度較差,對于性能無要求場景又要節(jié)省成本使用HSI。
-
在時鐘樹系統(tǒng)中,主時鐘選擇由PLL生成,PLL為鎖相環(huán)倍頻輸出,其時鐘輸入源可選擇為HSI/2、HSE或者HSE/2。倍頻可選擇為2~16倍,但是其輸出頻率最大不得超過72MHz。
-
css時鐘監(jiān)視系統(tǒng)但HSE失效時自動切換至HSI5、外設有獨立的時鐘分頻配置,主要有USB、SDIO、FSMC、APB1、APB2、ADC等。APB1和APB2是倆個總線橋:APB1和APB2,其中APB1是低速總線,APB2是全速總線。
具體哪些外設掛在那條總線上可參考下圖:
** 使用STM32CubeMX配置時鐘**
以STM32F105為例打開工程選擇HSE,選擇外部晶振作為輸入。
點擊Clock Configuration如下圖:
04 結尾
本篇主要分析STM32的時鐘,并以stm32f105為例使用STM32CubeMX配置時鐘演示。如有疑問,歡迎留言討論。
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!