串口循环队列接收缓冲区bug

项目场景:

项目场景:巡检机器人STM32控制板采用串口与工控机通信,循环队列接收缓冲区出现bug,导致循环获取历史数据包

问题描述:

巡检机器人执行任务中出现bug,往复执行历史命令,排查了好几天,最后检查上位机串口没有发送数据,单片机debug也确认串口没有接收到新数据。最后的最后才debug32的串口数据缓存循环队列,发现代码中Lenght变量出现了问题。 循环队列缓冲数据代码: 此处借用博客代码 [循环队列代码](https://blog.csdn.net/m0_47661708/article/details/106585137?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162019740716780357260766%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162019740716780357260766&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-106585137.nonecase&utm_term=%E4%B8%B2%E5%8F%A3%E5%BE%AA%E7%8E%AF%E9%98%9F%E5%88%97)
typedef struct
{
   
   
 uint16_t Head;//头指针
 uint16_t Tail;//尾指针
 uint16_t Lenght;//长度
 uint8_t Ring_Buff[200];//缓冲大小
}RingBuff_t;
extern RingBuff_t ringBuff;
void RingBuff_Init()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值