(亲测有效)STM32F407串口信息乱码(正点原子硬件移植野火程序)

本文讲述了作者在将程序从正点原子STM32F407ZGT6板移植到使用25M晶振的野火硬件时遇到的串口乱码问题,通过对比硬件、搜索时钟配置文件并调整PLLM值和USART设置,最终成功解决了问题并给出移植注意事项。

硬件

现有的硬件为正点原子STM32F407ZGT6最小系统板,前期也是一直跟着正点原子资料学习,后来巧合遇到了野火的视频,觉得野火基于CubeMX+HAL的编程能够更快地实现功能,同时个人觉得野火的编程思路更适合我,但手头没有野火硬件,因此考虑到程序移植的办法。
正点原子407最小系统板

出师不利:

刚上手移植第一个串口程序就出现乱码问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原因分析

板载晶振区别+时钟配置问题
在这里插入图片描述
野火使用的是25M的晶振,而正点原子使用的是8M的晶振,,时钟源频率不同,导致程序节拍就有差异,频率不匹配,信号不能正确传输和解析,因此会出现乱码问题。

解决办法

寻找程序中配置时钟的文件

网上查了一些,在我这里不太适应,我尝试直接全局搜索(Ctrl+F)

25000000
25M
HSE_VALUE

找到了下面的信息:
![在这里插入图片描述](https://img-blog.csdnimg.cn/c0b05e11c3074d97bac78221cadae427.png#pic_center
**在这里插入图片描述
HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value25 MHz), user has to ensure that HSE_VALUE is same as the real frequency of the crystal used. Otherwise, this function may have wrong result.
文件里说的很清楚,默认25MHz,根据需要自行去对应文件里改。
在这里插入图片描述

25000000对应改为8000000

寻找时钟配置和初始化,核对配置情况

在这里插入图片描述
这里重要修改一下PLLM的值

25改为8

核对串口信息

初始化USART 配置模式为 115200 8-N-1

结果

重新编译,查看结果
在这里插入图片描述
修改了一下打印信息,更整齐一些
在这里插入图片描述

总结

1.移植之前先对比硬件原理图,更新硬件配置信息

2.充分利用全局走搜索(Ctrl+F)功能

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值