无感升级时,接收蓝牙数据,只能接收到后半部分

发布时间 2023-11-01 17:35:03作者: 我爱茜茜公主

背景:
ota升级过程中不上报脉冲类、模拟量类数据时,升级过程没问题;(接收到升级数据包,发送应答)
ota升级过程中上报脉冲类、模拟量数据时,偶尔会接收数据包不完整;

现象:
ota升级过程中,接收到的蓝牙数据,只能接收到后半部分;

解决思路:
要确定是发送方发送数据是否完整或接收方接收数据是否完整;
发送方程序是新开发的,无法自证发送数据是否完整,需要找一个可靠的软件代替发送方程序;
在手机上装了ble蓝牙 app(e调试、feasyBlue、ble调试助手、ble蓝牙助手);
用的是feasyBlue app,按照协议发送数据,重现了接收蓝牙数据不完整现象,这说明是单片机接收代码问题;

一点点排除,不是接收缓冲器小的问题;最后发现是如下问题:
image
这里用了临界区了,临界区会关闭中断,影响了串口接收中断!!!