學(xué)習(xí)野火的固件庫UART1串口案例時,用的是SIM9008模塊應(yīng)用板上的STM32103F103RB芯片,使用的外部晶振是12M。
串口讀取的是亂碼
默認(rèn)的外部晶振是8M
由于stm32的庫默認(rèn)是外部晶振8M的情況下實(shí)現(xiàn)的,所以配置串口波特率的時候也是按8M,包括主頻。
如果采用外部晶振8M或12M,配置時鐘為72MHZ 。
1)在system32_stm32f10x.c文件中的void SetSysClockTo72(void)里這樣改:
8M:
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);//8*9=72
12M:
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);//12*6=72
2)stm32f10x.h中修改:
8M:
#define HSE_Value ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
12M:
#define HSE_Value ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */