STM32F103時鐘樹講解

2021-10-09 17:34:27 字數 1915 閱讀 7760

時序在數位電路中的作用,就像通訊中用到的載波,載波並不起眼,但是很重要。時鐘也一樣,現象上只是某種頻率波峰波谷跳動,一成不變。但是有了它,就像人類的歷史有了時間軸一樣,什麼時候該幹什麼事才有了可能。程式中發生的事件,能夠按照自己的意願發生。

時鐘源倍頻器高速時鐘高速外設低速時鐘低速外設yesno

stm32時鐘源分為以下:

低速內部時鐘lsi:頻率為40khz

高速內部時鐘hsi:頻率為8mhz

低速外部時鐘osc_32:頻率為32.7678khz

高速外部時鐘osc:頻率範圍4-16mhz

時鐘輸出mco:為其他裝置提供時鐘源

在對時鐘頻率要求不高的情況下,我們可以選擇內部rc振盪器時鐘作為微控制器工作的時鐘源。如果對時鐘精度要求較高,我們要選擇外部石英晶體振盪器(晶振),作為微控制器的時鐘源,因為內部時鐘用的是模擬電路組成的振盪器,誤差較大,在實時性要求比較高的場合(串列埠通訊、iic通訊等)容易造成不可預知的錯誤。

時鐘相對複雜的意義主要是為不同外設提供合適的時鐘頻率,主要目的是為了節能、低功耗。

高速時鐘:用於高速外設io 串列埠通訊 spi等等

低速時鐘:用於低速外設 rtc 看門狗

倍頻器:時鐘與外設進行時鐘適配

相關暫存器講解

pllsrc

鎖相環倍頻器時鐘源選擇

內部高速時鐘2分頻

外部高速時鐘

pllmul

鎖相環時鐘倍頻器

pllsrc選擇的時鐘進行倍頻,最大不能超過72mhz

pllxtpre

鎖相環時鐘選擇

選擇外部時鐘作為鎖相環倍頻器時鐘源

選擇外部時鐘2分頻後作為鎖相環倍頻器時鐘源

sw

系統時鐘選擇

選擇內部高速時鐘作為系統時鐘

選擇鎖相環倍頻時鐘作為系統時鐘

選擇外部高速時鐘作為系統時鐘

ahb

系統時鐘分頻器

css

時鐘安全監測單元

當外部時鐘意外故障,css在短時間內切換到內部高速時鐘使微控制器工作不中斷

rtcclk

實時時鐘時鐘源選擇

選擇鎖相環倍頻器時鐘源128分頻作為實時時鐘時鐘源

選擇外部低速時鐘作為實時時鐘時鐘源

選擇內部低俗時鐘作為實時時鐘時鐘源

mco

時鐘輸出控制

鎖相環時鐘2分頻輸出

內部低俗時鐘輸出

內部高速時鐘輸出

系統時鐘輸出

關於apb1 apb2時鐘重點

stn32微控制器外設掛接在apb1、apb2兩個橋上,但兩個橋允許的始終最大頻率不相同,apb2最大允許72mhz,apb1最大只允許36mhz,在使用外設時應格外注意時鐘,例如串列埠一掛接在apb2上,其餘串列埠掛接在apb1上,在串列埠配置時應注意失蹤頻率的不同造成的波特率配置問題(庫函式開發忽略此項內容)。

外部時鐘晶振最好選擇8m晶振,無論是庫函式,還是keil預設配置啟動檔案時鐘配置均是按照外部晶振8mhz來進行的配置,系統時鐘72mhz,如果採用其餘晶振還需要自己配置時鐘樹,對於新手來講可能存在一定的困難

STM32F103 時鐘配置

stm32f103外部8m的振盪器,經過倍頻後最高可以達到72m。void rcc deinit void 將外設rcc暫存器重設為預設值 void rcc hseconfig u32 rcc hse 設定外部高速晶振 hse rcc hse 取值如下 rcc hse offhse晶振off rcc...

STM32F103 時鐘配置

由於stm32的庫預設是外部晶振8m的情況下實現的,所以配置波特率的時候也是按8m,包括主頻,如果用12m晶振就需要改動幾個地方 在system stm32f10x.c中找到相應型別的檔案,進行如下修改。1 72m主頻 8m時 rcc cfgr uint32 t rcc cfgr pllsrc hs...

STM32F103低功耗喚醒時鐘設定

stm32中有四個時鐘源 stm32f103中預設的時鐘源為8m高速外部時鐘,通過分頻器llxtpre選擇不分頻為8mhz,再通過鎖相環pll經過9倍頻得到時鐘頻率72mhz,並將該頻率作為系統時鐘。stm32中很方便的將以上步驟簡化為乙個初始化函式 systeminit 因此,對於stm32中時鐘...