第一課之 STM32 RCC

2021-06-25 12:19:49 字數 1533 閱讀 8090



stm32 rcc復位與時鐘配置,我首先忽略掉復位,首先學習時鐘配置,復位以後用到再學習

stm32有多個時鐘源,分別是

hsi:上電預設啟動,因精度不高所以先不採用,以後如果需要再使用

hse:外部高速時鐘,系統時鐘一般採用它,經過pll倍頻作為系統同時鐘

lse:外部低速時鐘,一般專門用於rtc,等到rtc模組時再使用

lsi:內部低速時鐘,精度不高,一般用於iwdgclk

時鐘系統框圖如下:

stm32中各個模組都有自己的時鐘,當使用相應的模組時首先記得把此模組時鐘開啟

本次學習使用標準韌體庫3.3.0

好了,看明白上圖咱就開始吧:

void rcc_configuration(void)

//等待pll啟動完成

rcc_sysclkconfig(rcc_sysclksource_pllclk);  //配置系統時鐘

while(rcc_getsysclksource() !=0x80)          //檢查是否將hse 9倍頻後作為系統時鐘

{} }

設定時鐘流程:

1.將rcc暫存器重新設定為預設值        rcc_deinit

2.開啟外部高速時鐘晶振hse              rcc_hseconfig(rcc_hse_on);

3.等待外部高速時鐘晶振工作              hsestartupstatus = rcc_waitforhsestartup();

4.設定ahb時鐘                                rcc_hclkconfig;

5.設定高速apb2時鐘                         rcc_pclk2config;

6.設定低速速apb1時鐘                      rcc_pclk1config

7.設定pll                                       rcc_pllconfig

8.開啟pll                                       rcc_pllcmd(enable);

9.等待pll工作                      while(rcc_getflagstatus(rcc_flag_pllrdy) == reset) 

10.設定系統時鐘                              rcc_sysclkconfig

11.判斷是否pll是系統時鐘               while(rcc_getsysclksource() != 0x08)

12.開啟要使用的外設時鐘                  rcc_apb2periphclockcmd()/rcc_apb1periphclockcmd()

至此我們就將stm32的系統時鐘配置好了,系統時鐘72mhz,aph 72mhz,apb2 72mhz,apb1 32mhz,usb 48mhz

其他至於adc什麼的先用不管,用到時再設定,本次只是大體先熟悉下stm32的時鐘配置流程,便於以後程式的編寫

第一課之2 STM32 RCC

void systick init void 系統時鐘定時器的週期與驅動的時鐘頻率和reload值相關。rcc通過ahb時鐘 hclk 8分頻後作為cortex系統定時器 systick 的外部時鐘。驅動系統時鐘定時器的時鐘源有兩個 hclk或 hclk 8預設 通過呼叫systick clksou...

開學第一課

因為是開學第一課,而且這是我的第一篇個人部落格,更何況還是技術部落格,所以我會認真對待,不過畢竟第一次,所以難免各方面會有不足,所以有任何的意見或建議都可以提出來以供本人提高。下面廢話少說,進入正題。使用quartus,新建乙個專案,建立乙個bdf檔案,雙擊bdf空白處,新增元件符號。找到 7413...

鋼琴第一課

哇 昨天去上了第一節鋼琴課,好開心好開心 核心要義 感覺自己像個小公主 儀態儀容 屁股只能坐一半 身體保持正直 手非常溫柔非常輕鬆地搭到琴鍵上 胳膊肘整個過程保持不動 兩手手腕微微向內旋轉,盡量讓手背與琴鍵平行,中空狀。落下時,呈自由落體狀,每個手指放到該放的琴鍵上。一首曲目彈奏完畢,手,輕輕地溫柔...