使用外接12MHz的晶振,會造成很多的問題,如USART的波特率不正確,Systick走時不準等問題,在無論是在實際調試還是在軟件模擬中都會發(fā)現(xiàn)這個情況,其實,這不能怪ST官方,我們必須肯定ST官方為方便用戶開發(fā)所做的努力,下面我們就通過簡單的三個步驟就可以讓你隨意的使用4—16MHz之內任何頻點的晶振,我們以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);
至此,原文件已經修改完成,如果你想將主頻修改至其他頻率,請自行修改。
? 室內定位使用的STM32F105系列屬于鏈接線路設備,在配置時請注意條件選擇“STM32F10X_CL”