[STM32F3] 串口接收丢字节是DMA配置不对吗?

[复制链接]
621|19
 楼主| 周半梅 发表于 2025-5-4 07:15 | 显示全部楼层 |阅读模式
用IDLE中断配了DMA,但数据有时候就是不全,是哪里没配好?


Clyde011 发表于 2025-5-4 07:20 | 显示全部楼层
看你用哪种接收逻辑再决定处理方法。
公羊子丹 发表于 2025-5-4 07:20 | 显示全部楼层
DMA是不是循环模式忘勾了?
 楼主| 周半梅 发表于 2025-5-4 07:21 | 显示全部楼层
中断触发靠IDLE位吗?
帛灿灿 发表于 2025-5-4 07:22 | 显示全部楼层
我之前是FIFO设置太小导致丢。
童雨竹 发表于 2025-5-4 07:23 | 显示全部楼层
波特率高了没加硬件流控也会出问题。
万图 发表于 2025-5-4 07:24 | 显示全部楼层
有没有开DMA中断标志位判断?
Wordsworth 发表于 2025-5-4 07:25 | 显示全部楼层
一帧数据过快容易丢头丢尾。
Bblythe 发表于 2025-5-4 07:26 | 显示全部楼层
是不是buffer不够大?
Pulitzer 发表于 2025-5-4 07:26 | 显示全部楼层
HAL库版本不一样,有的处理不严谨。
Uriah 发表于 2025-5-4 07:27 | 显示全部楼层
开空闲中断配合双缓冲试试?
江河千里 发表于 2025-5-14 15:43 | 显示全部楼层
在半满中断中将数据拷贝到备用缓冲区,避免覆盖。增大缓冲区:根据数据量合理设置缓冲区大小,避免溢出。


光辉梦境 发表于 2025-5-14 15:44 | 显示全部楼层
1.未使用双缓冲机制,若未配置双缓冲(如DMA半满中断+全满中断),在处理数据时新数据可能覆盖旧数据。
别乱了阵脚 发表于 2025-5-14 17:00 | 显示全部楼层
缓冲区溢出,接收数据量超过缓冲区容量,导致数据丢失

暖了夏天蓝了海 发表于 2025-5-14 17:40 | 显示全部楼层
未及时关闭DMA,在IDLE中断中处理数据时未关闭DMA,新数据可能覆盖未处理的数据

一秒落纱 发表于 2025-5-14 19:00 | 显示全部楼层
优先级冲突,DMA传输完成中断与IDLE中断优先级设置不当,可能导致中断处理延迟。
夜阑风雨 发表于 2025-5-14 20:00 | 显示全部楼层
数据边界处理不当,未正确区分IDLE中断触发的数据帧边界,导致数据截断或重复

远山寻你 发表于 2025-5-14 20:50 | 显示全部楼层
波特率不匹配,发送端与接收端波特率不一致,导致数据解析错误

三生万物 发表于 2025-5-14 22:00 | 显示全部楼层
信号干扰,硬件线路干扰或电源噪声导致数据传输错误

冰春彩落下 发表于 2025-5-14 23:13 | 显示全部楼层
无硬件流控,未使用RTS/CTS流控,在高波特率下可能丢数据。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

150

主题

5823

帖子

1

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