STM32
直播中

张龙祥

8年用户 1173经验值
擅长:连接器
私信 关注
[问答]

zigbee发包时过程被其他任务中断,导致发送数据丢失怎么解决?

1、问题描述:
zigbee发包时过程被其他任务中断,导致发送数据丢失
2、芯片型号:STM32WB55

回帖(2)

高文利

2024-3-13 14:23:32
发包的过程是由M0核单独处理的,理论上不应该被打断,应该是其他问题
举报

张燕

2024-3-13 17:30:38
要解决zigbee发包过程中被其他任务中断导致数据丢失的问题,可以考虑以下几个方面:

1. 优化任务调度:确保zigbee发包任务的优先级设置较高,以降低被其他任务中断的可能性。

2. 使用优先级抢占:通过任务调度机制,将zigbee发包任务设置为抢占式优先级,以确保其在其他任务中断时能够及时执行。

3. 使用中断锁:在zigbee发包任务的关键代码段使用中断锁机制,阻止其他中断干扰,确保数据的正确发送。

4. 合理划分任务和中断:如果可能,可以将与zigbee通信相关的代码尽量放在中断服务程序中执行,以确保数据的实时性。

5. 缓冲区和重发机制:在发送数据时,可以使用缓冲区来缓存数据,当发生中断时,可以在中断处理完成后继续发送。同时,可以加入重发机制,当数据丢失时自动重发。

总之,通过合理调度任务优先级、使用中断锁、合理划分任务和中断、使用缓冲区和重发机制等方法,可以解决zigbee发包过程中被其他任务中断导致数据丢失的问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分