[STM32G4] UART发送长数据时后半段错乱,怀疑DMA或缓存

[复制链接]
372|11
Wordsworth 发表于 2025-10-11 07:19 | 显示全部楼层 |阅读模式
发送几百字节数据到上位机时,前半部分正常,后半部分会出现乱码或丢字节。波特率不高,DMA方式发送。怀疑是缓存没同步或者中断优先级冲突。
Clyde011 发表于 2025-10-11 07:23 | 显示全部楼层
多半是缓存区没flush到内存里。
公羊子丹 发表于 2025-10-11 07:24 | 显示全部楼层
这个我见过,多半是DMA缓存没刷新。
周半梅 发表于 2025-10-11 07:25 | 显示全部楼层
检查下内存是不是放在DTCM区。
帛灿灿 发表于 2025-10-11 07:26 | 显示全部楼层
有时候是HAL_UART_TxCpltCallback没被触发。
童雨竹 发表于 2025-10-11 07:27 | 显示全部楼层
我建议DMA配置里别勾循环模式。
万图 发表于 2025-10-11 07:29 | 显示全部楼层
如果用了printf,注意重定向函数别打断发送。
 楼主| Wordsworth 发表于 2025-10-11 07:30 | 显示全部楼层
试试关掉中断再DMA发送,看有无差别。
Bblythe 发表于 2025-10-11 07:31 | 显示全部楼层
CubeIDE生成的默认配置有坑,优先级太低。
Pulitzer 发表于 2025-10-11 07:32 | 显示全部楼层
我遇到过FIFO溢出问题,波特率再低也会。
Uriah 发表于 2025-10-11 07:33 | 显示全部楼层
你可以用逻辑分析仪对比实际波形。
jf101 发表于 2025-10-12 22:52 | 显示全部楼层
DMA方式发送还是有非常快的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

6295

帖子

1

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