将传感器采集到的数据通过CC2640以Notify的方式发送给手机端,但出现漏发现象,怎么办?
时间:10-02
整理:3721RD
点击:
具体来说,传感器每2ms采集一次(采集时会产生一个中断用以进行数据的处理),一次2个字节,然后集够20个字节(时间约为20ms)后会设置一个标志以便通知下次connect event发生时可以将该数组中数据发送出去。蓝牙发面,我将最大和最小连接间隔都设置成了20ms。以上是我程序思路,结果出现漏发的现象,有些数据就没有被Notify出去。
我自己分析原因:
1.采集数据时产生的硬件中断可能会影响数据Notfy(协议栈任务)的进行,优先级问题。
2.中断处理函数中对数据的处理的时间太长,但我将处理函数最简化后,仍有漏发现象,所以貌似不是这里有问题。
所以在这里想问一问大家,数据采集和数据的Notify可不可以同步进行?或者大家有什么思路或想法可以保证,将采集到的数据无漏的发送出去?
万分感谢!
你好,
1.采集数据时产生的硬件中断可能会影响数据Notfy(协议栈任务)的进行,优先级问题。
2.中断处理函数中对数据的处理的时间太长,但我将处理函数最简化后,仍有漏发现象,所以貌似不是这里有问题。
你是否可以使用indect的方式来做?
把数据存储在fram,每天集中发送一次。
谢谢!问题已解决。原因是在每次连接事件结束后,我让系统触发了一个事件,这个步骤影响了数据的传输。