[STM32U0] 用中断收串口数据,咋有时候少字节?

[复制链接]
818|18
 楼主| Pulitzer 发表于 2025-4-13 07:20 | 显示全部楼层 |阅读模式
是不是进中断太频繁丢数据,或者串口FIFO没配置好
Clyde011 发表于 2025-4-13 07:24 | 显示全部楼层
试试直接在中断里搬数据,不要等主循环处理。
Uriah 发表于 2025-4-13 07:25 | 显示全部楼层
我自己加了个接收缓冲区+标志位才稳定下来。
 楼主| Pulitzer 发表于 2025-4-13 07:26 | 显示全部楼层
看看有没有丢失中断情况,用LED闪烁调试下。
Bblythe 发表于 2025-4-13 07:26 | 显示全部楼层
收数据的时候记得加timeout判断。
Wordsworth 发表于 2025-4-13 07:27 | 显示全部楼层
可以改用DMA试试收数据更稳。
公羊子丹 发表于 2025-4-13 07:28 | 显示全部楼层
是不是中断优先级太低被打断了?
周半梅 发表于 2025-4-13 07:29 | 显示全部楼层
检查下串口溢出位有没有被置位。
帛灿灿 发表于 2025-4-13 07:30 | 显示全部楼层
FIFO深度够吗?试着调大点。
童雨竹 发表于 2025-4-13 07:30 | 显示全部楼层
我之前用的是HAL_UART_Receive_IT,有时卡住。
万图 发表于 2025-4-13 07:31 | 显示全部楼层
有OS的话要小心任务调度时间。
qintian0303 发表于 2025-4-13 11:38 | 显示全部楼层
中断进行接受串口数据少字节得看具体情况,是不是优先级不高被错过了了,是不是没有缓存等等
cr315 发表于 2025-4-18 11:56 | 显示全部楼层
通常是 中断处理时间过长造成的。
elephant00 发表于 2025-4-18 11:58 | 显示全部楼层
缓冲区溢出?建议增大缓冲区大小。
两只袜子 发表于 2025-4-18 20:00 | 显示全部楼层
可能是波特率、数据位、停止位、校验位等配置不匹配。
jcky001 发表于 2025-4-18 20:56 | 显示全部楼层
调整中断优先级,如果其他高优先级中断频繁触发,可能导致串口中断被延迟处理。
cr315 发表于 2025-4-18 22:00 | 显示全部楼层
如果数据量较大,考虑使用 DMA 接收数据。
xiyaoko2365 发表于 2025-4-30 23:32 | 显示全部楼层
如果你在接收到中断后,处理中断的时间过长,可能会导致 串口接收缓冲区 数据未能及时处理,从而丢失数据。
xiyaoko2365 发表于 2025-4-30 23:32 | 显示全部楼层
串口接收通常会缓存一定数量的数据,如果在数据到达时,CPU 没有足够的时间来处理每个中断,数据就会被丢弃。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

146

主题

5763

帖子

0

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