[STM32G0] UART DMA模式下接收中断乱触发,怀疑空闲检测问题

[复制链接]
100|10
Wordsworth 发表于 2025-10-20 07:47 | 显示全部楼层 |阅读模式
UART用DMA接收数据,开了空闲中断,但偶尔在传输过程中提前触发,好像误判空闲。数据流不稳定时特别容易出现。
Clyde011 发表于 2025-10-20 07:51 | 显示全部楼层
我最后直接关空闲检测,自己超时判断更靠谱。
公羊子丹 发表于 2025-10-20 07:52 | 显示全部楼层
空闲检测这东西确实玄学,我也调了好久。
周半梅 发表于 2025-10-20 07:53 | 显示全部楼层
可以先关空闲检测看看是不是DMA自己触发的。
帛灿灿 发表于 2025-10-20 07:54 | 显示全部楼层
是不是波特率太高?有时候误触发就是采样点太近。
童雨竹 发表于 2025-10-20 07:55 | 显示全部楼层
G0系列的USART有个Bug,IDLE标志清除时机要注意。
万图 发表于 2025-10-20 07:56 | 显示全部楼层
建议先读SR再读DR清标志,否则会残留。
 楼主| Wordsworth 发表于 2025-10-20 07:57 | 显示全部楼层
我觉得可以加个FIFO缓冲,别直接判断一次就处理。
Bblythe 发表于 2025-10-20 07:58 | 显示全部楼层
用环形DMA更好,配合计时判断空闲。
Pulitzer 发表于 2025-10-20 07:59 | 显示全部楼层
你是不是用了printf输出调试?也会干扰接收。
Uriah 发表于 2025-10-20 07:59 | 显示全部楼层
建议把优先级理一下,有时中断嵌套影响判定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

6295

帖子

1

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