[STM32G0] UART串口偶尔输出乱码,像是波特率跑偏

[复制链接]
241|12
Clyde011 发表于 2025-10-17 07:20 | 显示全部楼层 |阅读模式
系统运行久了后UART打印会出现乱码,重启后又恢复。感觉像时钟校准跑掉了,但我用的是外部晶振。怀疑是串口缓冲区或者DMA状态出错。
 楼主| Clyde011 发表于 2025-10-17 07:21 | 显示全部楼层
乱码问题真烦,我一般加看门狗强制重启来兜底。
公羊子丹 发表于 2025-10-17 07:22 | 显示全部楼层
我之前调G0串口也遇过,结果是DMA没复位干净。
周半梅 发表于 2025-10-17 07:22 | 显示全部楼层
你可以在出错时读取USART_ISR寄存器看看。
帛灿灿 发表于 2025-10-17 07:23 | 显示全部楼层
是不是有别的任务抢占CPU太久导致发缓冲超时?
童雨竹 发表于 2025-10-17 07:24 | 显示全部楼层
也可能是晶振震荡电路偶发失锁。
万图 发表于 2025-10-17 07:29 | 显示全部楼层
我建议在波特率误差范围内重新算一下设定值。
Wordsworth 发表于 2025-10-17 07:30 | 显示全部楼层
有可能是电源噪声影响时钟,特别是USB共线的时候。
Bblythe 发表于 2025-10-17 07:31 | 显示全部楼层
加个打印CRC校验看看是不是数据本身没问题。
Pulitzer 发表于 2025-10-17 07:33 | 显示全部楼层
G0的USART FIFO有时候会卡,可以手动flush一下。
Uriah 发表于 2025-10-17 07:33 | 显示全部楼层
是不是用了低功耗模式?唤醒时UART时钟会短暂停。
chenjun89 发表于 2025-10-17 08:36 来自手机 | 显示全部楼层
这种情况大概率和你的软件处理有关系,也就是软件设计缺陷。
yangxiaor520 发表于 2025-10-17 08:53 来自手机 | 显示全部楼层
仔细检查一下软件的逻辑,一般还是软件的问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

167

主题

6004

帖子

0

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