Stm32f429串口通信乱码问题:HSE_VALUE设置

Stm32f429串口通信乱码问题:HSE_VALUE设置

在调试Stm32f429串口通信时,串口调试助手出现如图所示乱码。
Stm32f429串口通信乱码问题:HSE_VALUE设置
由于需要用到的串口是UART7,而正点原子阿波罗开发板提供的例程是USART1,所以猜想是否是两个串口配置不一样,但串口一虽然是同步/异步的,但使用时设置的是异步,所以和串口7的配置没有区别。

又查找资料发现各大神说是HSE_VALUE的值有问题。开发板的晶振是25MHz,而我的晶振是20MHz,单纯从魔术棒中设置设备的晶振值不管用,还需要修改宏定义HSE_VALUE的值。但根据各个大神的指引,在“stm32f4xx.h”和“stm32f429xx.h”中都找不到HSE_VALUE的定义。

最后在一篇文章的启发下,在“stm32f4xx_hal_conf.h”中找到了HSE_VALUE。(文章链接在末尾)
Stm32f429串口通信乱码问题:HSE_VALUE设置
将原先的行注释掉,改成自己的HSE值。串口通信正常。
Stm32f429串口通信乱码问题:HSE_VALUE设置