[STM32F1] 串口中断偶尔丢字节,怀疑环形缓冲区逻辑有问题

[复制链接]
73|10
Clyde011 发表于 2025-11-13 07:16 | 显示全部楼层 |阅读模式
做了个环形缓冲的串口接收程序,发现偶尔会漏掉几个字节。调试时中断能进,但写入缓冲区的位置不对。感觉像指针越界或者读写同步没对上。
 楼主| Clyde011 发表于 2025-11-13 07:19 | 显示全部楼层
也可能是发送方连续发太快,没给你喘气。
公羊子丹 发表于 2025-11-13 07:20 | 显示全部楼层
我遇到过,后来发现是读写指针更新顺序不对。
周半梅 发表于 2025-11-13 07:21 | 显示全部楼层
F1的USART有时会在溢出时自动丢数据。
帛灿灿 发表于 2025-11-13 07:22 | 显示全部楼层
你加临界区保护了吗?多任务下容易乱。
童雨竹 发表于 2025-11-13 07:23 | 显示全部楼层
我试过用DMA方式接收,稳定很多。
万图 发表于 2025-11-13 07:24 | 显示全部楼层
可能是中断优先级太低,延迟太久。
Wordsworth 发表于 2025-11-13 07:25 | 显示全部楼层
环形缓冲要注意取模运算,容易出错。
Bblythe 发表于 2025-11-13 07:26 | 显示全部楼层
调试器断点太多也可能打乱中断节奏。
Pulitzer 发表于 2025-11-13 07:27 | 显示全部楼层
我以前加了个冗余标志位来判满判空。
Uriah 发表于 2025-11-13 07:28 | 显示全部楼层
试试关掉优化编译看看是不是编译器搞鬼。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

181

主题

6206

帖子

0

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