STM32學習心得——STM32外部晶振更換設置

之前小編申請了一個STM32免費的迷你板,調試串口通信時總是弄不好。後來發現大多數stm32採用的是8M的晶振,但是手裡這塊迷你版採用的是12M的晶振,其實STM32支持4—16MHz之內任何頻點的晶振。於是想到了兩個解決方案。第一個是改程序,第二個是換晶振。本著不亂改硬件的原則,決定開始更改程序。

STM32學習心得——STM32外部晶振更換設置

keil 5

經過查資料得知,其實就是把system_stm32f10x.c裡面的時鐘設置改一下就行了,原本8*9=72。12M的晶振72/12=6。但是把響應位置改過了之後並沒有成功。後來查倒stm32f10x.h裡面也有時鐘的設置。再次更改,依舊失敗。最終到處查詢後找到了問題所在——keil自身設置。

STM32學習心得——STM32外部晶振更換設置

keil設置界面

下面我們就通過簡單的三個步驟教大家怎更改外部晶振設置:

第一步,打開stm32f10x.h,將

#define HSE_VALUE ((uint32_t)8000000)

修改為:

#define HSE_VALUE ((uint32_t)12000000)

第二步,打開system_stm32f10x.c,修改PLL參數,將

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);

修改為:

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);

第三步,打開你已經建立的STM32工程,選擇Projects-〉Options for target ***,找到Target標籤,你會發現,外接的晶振默認還是8MHz,我們將外接的晶振參數修改為12MHz。這樣就完成了晶振頻率的設置。


分享到:


相關文章: