STM32F103 的晶振由8M改为了12M,串口该怎么配置

UART 通信的波特率是跟时钟频率有关的。所以随便换个晶振,必然影响 UART 的工作。翻开库函数 USART_Init,通过 RCC_GetClocksFreq 函数获取系统频率的。而此函数又是由 HSE_VALUE 影响频率值的。这就是晶振频率。这个宏在 stm32f10x.h 里做了定义,你可以直接到这个头文件里改掉它。由于使用了 #if !defined HSE_VALUE#define HSE_VALUE xxxx的方式,由于Keil MDK 编译器的预定义符号里被不能给 HSE_VALUE 定义 12000000 这样的常数,你也可以自己建立一个头文件来定义 HSE_VALUE 12000000, #include 先于 stm32f10x.h (说起来有点复杂,但可以不去改 stm32f10x.h)。

你可能感兴趣的:(STM32F103 的晶振由8M改为了12M,串口该怎么配置)