12M晶振下,STM32串口波特率設(shè)置問題
使用外接12MHz的晶振,會(huì)造成很多的問題,如USART的波特率不正確,Systick走時(shí)不準(zhǔn)等問題,在無論是在實(shí)際調(diào)試還是在軟件模擬中都會(huì)發(fā)現(xiàn)這個(gè)情況,其實(shí),這不能怪ST官方,我們必須肯定ST官方為方便用戶開發(fā)所做的努力,下面我們就通過簡(jiǎn)單的三個(gè)步驟就可以讓你隨意的使用4—16MHz之內(nèi)任何頻點(diǎn)的晶振,我們以STM32F10x_StdPeriph_Lib_V3.4.0為例說明。
第一步,打開stm32f10x.h,將
#define HSE_VALUE ((uint32_t)8000000)
修改為:
#define HSE_VALUE ((uint32_t)12000000)
第二步,打開system_stm32f10x.c,修改PLL參數(shù),將
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_PLLMULL9);
修改為:
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);
至此,原文件已經(jīng)修改完成,如果你想將主頻修改至其他頻率,請(qǐng)自行修改。
? 室內(nèi)定位使用的STM32F105系列屬于鏈接線路設(shè)備,在配置時(shí)請(qǐng)注意條件選擇“STM32F10X_CL”