[STM32F1] STM32串口打印输出乱码的解决办法

[复制链接]
2771|61
 楼主| stly 发表于 2023-3-1 19:31 | 显示全部楼层 |阅读模式
最近在试用uFUN开发板,下载配套的Demo程序,串口数据输出正常,当使用另一个模板工程,调用串口printf调试功能时,输出的却是乱码,最后发现是外部晶振频率不一样。很多STM32开发板都是使用的8M晶振,这个也是ST官方推荐的晶振频率,而且固件库默认是8M频率,倍频系数9。而uFUN开发板的晶振是和CH340共用一个12M晶振。如果固件库的参数不和硬件实际连接的晶振频率一致,那么不仅是串口会出现乱码,而且定时器这些也是不准确的,因为基本的工作时钟被打乱了。其实之前也遇到过这个问题,这次就算是记录一下吧!
averyleigh 发表于 2023-5-14 20:44 | 显示全部楼层
UART通信需要发送端和接收端的电平匹配
beacherblack 发表于 2023-5-14 21:55 | 显示全部楼层
初步怀疑是晶振与程序不一致              
chenci2013 发表于 2023-5-14 22:05 | 显示全部楼层
串口自检的方法:用跳线把串口的发送和接收短接
ulystronglll 发表于 2023-5-14 22:15 | 显示全部楼层
在解决串口输出乱码问题时,需要综合考虑多种因素并逐一排查
MessageRing 发表于 2023-5-14 22:26 | 显示全部楼层
是不是波特率的问题
jackcat 发表于 2023-5-18 14:16 | 显示全部楼层
如果线序正确 波特率不一样 就会有乱码出现
10299823 发表于 2023-5-18 14:36 | 显示全部楼层
UART通信线路可能会受到噪声的干扰,例如电源电压波动、串扰等,这也可能导致串口输出乱码。
mmbs 发表于 2023-5-18 14:56 | 显示全部楼层
波特率 数据位 校验位 不匹配
maudlu 发表于 2023-5-18 15:38 | 显示全部楼层
在使用串口进行通信时,发送端和接收端需要使用相同的波特率。如果波特率设置不正确,就会导致数据传输过程中出现误差。
yorkbarney 发表于 2023-5-18 17:25 | 显示全部楼层
如果数据格式设置不正确, 容易导致数据传输错误。
uptown 发表于 2023-5-21 11:17 | 显示全部楼层
注意TTL RS232 RS485这几种电平形式是不同的,不能直接连接
1988020566 发表于 2023-5-21 13:41 | 显示全部楼层
如果线序正确 波特率不一样 就会有乱码出现
sesefadou 发表于 2023-5-21 14:01 | 显示全部楼层
在使用串口进行通信时,发送端和接收端需要使用相同的波特率。如果波特率设置不正确,就会导致数据传输过程中出现误差。
jonas222 发表于 2023-5-21 15:29 | 显示全部楼层
波特率 数据位 校验位 不匹配
kmzuaz 发表于 2023-5-21 15:49 | 显示全部楼层
UART通信线路可能会受到噪声的干扰,例如电源电压波动、串扰等,这也可能导致串口输出乱码。
geraldbetty 发表于 2023-5-21 16:42 | 显示全部楼层
如果数据格式设置不正确, 容易导致数据传输错误。
七毛钱 发表于 2023-9-26 16:38 | 显示全部楼层
是检查程序设置,确保参数正确,同时对接收缓冲区进行适当大小的设置,以避免溢出。
豌豆爹 发表于 2023-9-26 16:40 | 显示全部楼层
可能是串口通信电平不匹配、数据传输速率过快、信号线焊接错误等硬件问题导致。解决办法是检查硬件设备,如电平转换器是否正常工作,数据传输速率是否匹配,信号线是否焊接正确等,并对出现问题的硬件进行维修或更换。
Henryko 发表于 2023-9-29 20:55 | 显示全部楼层
首先怀疑波特率的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

7058

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部