数据截断问题

先描述现象:在使用串口中断接收数据时,在串口中断中把接收到的字节数,通过队列的方式传递给其他任务做解析,串口中断中明明接收到了数据,并且把data_size写入了队列,但是在任务函数中,能进入if的条件内的代码,但是接收到的data_size是0.

在这里插入图片描述
以上是串口中断中的代码

在这里插入图片描述

以上是任务函数中的代码

问题就出在,接收到的数据超过了uint8_t的大小,高字节被截断了,所以就出现了,队列明明接收到了数据,但是接收到的数据是0
在这里插入图片描述

解决方法:改用 16 位变量存放长度
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值