请教一个问题:
使用CC1310基于rfWsnConcentrator_CC1310_LAUNCHXL_tirtos_ccs例程进行开发,出现接收数据不稳定的情况,共有37个节点,有时无线信号弱,concentrator端会不定时死机,不知什么情况?
怀疑例程中的如下命令让例程死机。
if(EasyLink_receiveAsync(rxDoneCallback, 0) != EasyLink_Status_Success) {
System_abort("EasyLink_receiveAsync failed");
}
如果函数EasyLink_receiveAsync返回不成功时,如果重新开始接收数据?需要先调用
EasyLink_abort后,再重新调用EasyLink_receiveAsync吗?
谢谢
Alvin Chen:
RX is enabled by calling EasyLink_receive() or EasyLink_receiveAsync().
Entering RX can be immediate or scheduled.
EasyLink_receive() is blocking and EasyLink_receiveAsync() is nonblocking.
the EasyLink API does not queue messages so calling another API function while in EasyLink_receiveAsync() will return EasyLink_Status_Busy_Error
an Async operation can be cancelled with EasyLink_abort()关于你说的死机的情况建议debug 去抓抓看
xie wei:
回复 Alvin Chen:
测试了一下,基本确定就是 EasyLink_receiveAsync()不再能正常工作了,收到不到数据。节点发送数据有随机性,可能有节点同时发送数据吧。
1、 EasyLink_transmit()发送前有没有载波侦听?
2、如果发现 EasyLink工作不正常,在不重启MCU的情况下,如何重启 EasyLink?谢谢啊
xie wei
Alvin Chen:
回复 xie wei:
EasyLink_receiveAsync 是nonblocking 的,感觉是你没有发成功吧,你可以加个WOR试试。
TI中文支持网
