STM32單片機(jī)外部晶振無效?那是因?yàn)榕渲貌粚Γ?/h1>
[導(dǎo)讀]新項目用到STM32單片機(jī),用到了500k波特率的CAN通訊,因此沒有使用內(nèi)部晶振,而是用到了12M的外部晶振。該項目的程序員在調(diào)試的時候發(fā)現(xiàn),STM32的時鐘頻率不對,于是我給幫忙看了一下,找到了原因。
1.問題的提出
2.Datasheet上的答案
//微信公眾號:玩轉(zhuǎn)嵌入式,ID:micropoint8 #if !defined HSE_VALUE #ifdef STM32F10X_CL #define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */ #else #define HSE_VALUE ((uint32_t) 12000000 ) /*!< Value of the External oscillator in Hz */ #endif /* STM32F10X_CL */ #endif /* HSE_VALUE */ //微信公眾號:玩轉(zhuǎn)嵌入式,ID:micropoint8
3.依然無效
4.PLL時鐘配置
#else /* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */ RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);
至此,STM32可正常輸出PLL時鐘頻率。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!





