時鐘是微處理器的驅動力,類似人的心臟,只有不停地跳動系統(tǒng)才能正常運行。Stm32不同系列的時鐘基本結構類似,就是外設有些差別。這里以stm32f030系列為例來介紹。
在參考手冊中,時鐘樹如下所示:
圖中紅色塊表示時鐘源,這里一共有5個時鐘源。
1、8M HSI RC,這是芯片內(nèi)部的RC時鐘
2、4-32M HSE OSC,這是外部時鐘,可以輸入外部時鐘或者晶振,精度高
3、32.7689k LSE OSC,這是RTC外部晶振時鐘
4、40K LSI RC,這是內(nèi)部低速RC振蕩器時鐘
5、14M HSI14RC,這是專門給ADC用的內(nèi)部14M RC晶振
根據(jù)自己的需求和硬件設計,選擇打開對應的時鐘源,不用的就不要打開,可以減少功耗。
紫色線表示Flash的時鐘,可以看到它的時鐘源是內(nèi)部的8M RC振蕩器,從這里可以推測內(nèi)部這個8M的時鐘基本在一直工作,因為程序運行時需要不斷地訪問flash。
實際在系統(tǒng)復位后,會默認使用這個內(nèi)部的8M RC時鐘,而想要關掉它必須保證沒有任何設備直接或者間接使用它。
中間紅綠藍三條通路是系統(tǒng)時鐘的三種可選項??梢灾苯邮褂脙?nèi)部的8M RC時鐘,可以直接使用外部HSE OSC時鐘,或者通過PLL倍頻后的時鐘。
走PLL那條路需要:
1、 時鐘源分頻
2、 選擇PLL時鐘源
3、 PLL倍頻
4、 選擇PLL作為SYSCLK
只有通過PLL才能達到最高的工作頻率。
黃色塊是AHB分頻,青色塊是APB分頻,這倆上接了很多外設。
要訪問這些外設的寄存器,首先必須打開對應的時鐘。APB分成了兩組,需要在對應的寄存器中進行配置。
實際寫代碼的時候,使能一個時鐘以后要等待其穩(wěn)定,每個時鐘源都有專門的寄存器位指示是否ready。另外,HSI 8M和HSI14M可以修正,以排除制造、溫度和干擾的影響。
至此系統(tǒng)的時鐘就搞定了,以后使用某個外設前,只需要使能對應的時鐘即可。
?。。。翰煌奶幚砥髌浼毠?jié)可能會有些許差別,具體的情況還需要查閱參考手冊。
-
振蕩器
+關注
關注
28文章
3998瀏覽量
140793 -
STM32
+關注
關注
2293文章
11031瀏覽量
364435 -
微處理器
+關注
關注
11文章
2382瀏覽量
84125 -
時鐘
+關注
關注
11文章
1896瀏覽量
133165 -
STM32F030
+關注
關注
1文章
33瀏覽量
7048
發(fā)布評論請先 登錄
STM32F030數(shù)據(jù)手冊
STM32F030的終結者HC32F030 橫空出世
STM32F030新建工程模板資料免費下載

UM1658 STM32F030超值系列的DISCOVERY開發(fā)板之用戶手冊

評論