SensorDemo 终端节点串口接收
时间:12-22
整理:3721RD
点击:
您好,我在使用SensorDemo例程实现终端节点EndDevice与PC的串口通信时发现,EndDevice能够很好地将数据通过串口发送给PC,但是EndDevice却无法通过串口接收到PC发送来的数据。经过实验发现,通过单步调试等手段,程序能够进入串口回调函数,并能够很好地接收串口数据,但是一旦让程序自动运行后,感觉程序基本无法正常调用串口回调函数,基本上是PC重复发送好多次数据后,EndDevice才可能接收到1次数据。我比较了一下EndDevice与Coordinator的程序,发现我实现的EndDevice串口接收程序与Coordinator的串口接收程序基本没什么区别,但是Coordinator却能够很好地调用串口回调函数进行串口数据接收,而EndDevice却不行。我也尝试了在MT层中来处理串口接收任务,但是仍然无法正常及时调用串口回调函数,不知道这是为什么?非常期待您的回复!谢谢!
上面那个问题已解决!
我后来经过试验发现,如果将终端节点预定义选项中的POWER_SAVING取消掉,终端节点就能够很好地接收串口数据了。
通过搜索POWER_SAVING在程序中出现的情况,我认为上述问题可能的原因是:POWER_SAVING会导致终端节点的CPU在空闲时刻自动进入休眠模式,就无法及时探测到串口接收数据中断。
不知道这个想法对不对?期待您的回复!谢谢!
另外,如果我想让终端节点拥有休眠机制,那仍然无法回避上述问题,不知道您能不能给点意见?