STM32F4串口通信乱码
现象
已经排除串口配置、上位机接收波特率配置问题,但是通信始终乱码
解决方案
- 在system_stm32f4xx.c文件中搜索“#define HSE_VALUE”,确保PLL_M的值与板子上的晶振保持一致。如晶振是25MHz,PLL_M=25;晶振是8MHz,PLL_M=8。

#define PLL_M 25//修改为:#define PLL_M 8
- 当前项目搜索“#define HSE_VALUE”——在stm32f4xx.h文件中,确保HSE_VALUE的值与板子上的晶振保持一致。如晶振是25MHz,HSE_VALUE=25000000;晶振是8MHz,HSE_VALUE=8000000。

文件无法修改的话,关闭工程,修改权限,重新打开工程:

修改后串口数据正常

补充知识:晶振分频计算(无关知识,可选择观看)
- SYSCLK : 25M / 25 * 336 / 2 =168M
- AHB: SYSCLK / 1=168M
- APB1: AHB / 2 = 84M
- APB2: AHB / 4 =42M
参考资料
- 解决STM32F407串口数据乱码问题

