This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!这几天一直在试用针对点对点的BasicRF点灯程序,但不知为何程序会不定期的死机,有时半天都没事,有时1个小时后就出现故障,只要手动复位一下发送端才正常,程序我也只是改动了不是用来点灯而是发射数据流。
* 发送端 :以10MS的延时间隔把8个字节的有效载荷不间断发送出去,一旦收到接收端的成功应答帧后转入接收模式,延时循环等待接收端发来的有效载荷数据,在规定时间内收没收到接收端发来的数据都会重新进入发送循环。
* 接收端 :从上电一直处在接收状态,当收到发送端的8字节有效载荷数据后取反一次LED(收到指示)并通过串口打印出来,然后立即向发送端发送3个字节的有效载荷数据,在规定时间内收没收到发送端 的应答都会重新进入接收循环。
!!有时在发了几百万和字节后就出现收不到数据了,接收端的LED不闪,串口也无数据,用抓包看到发送端还不停地再发但接收端只做应答(它们的帧序号都一样),只有复位发送端其才又开始正常通讯,我这几天的大概想法是,因为发送端的BUG造成发送端帧序号的不变,也就造接收端不停地丢包不处理,这可以理解,但是什么原因照成发送端在成功发一帧后帧序号不++呢?请前辈们指点,谢谢!
您好!我想问个问题,在BasicRF里有个发送帧与空闲信道评估的函数里,没发现空闲信道评估的代码,请问如何添加呢,因为我们公司这个系统里会有几千个子节点存在,但在同一时间只会有上百个子节点向一个主节点发数据(每个子节点发送给主节点的净载荷为8个字节,主节点回传4个字节),谁先完成一次通信就先进入长期睡眠(10秒)没完成的间隔1秒后重发直到完成一次通信。没用到组网的协议栈,就是简单的BasicRF协议,试了几个同时还行,多了就会通信时间很长(有对冲),请指点谢谢!
uint8 halRfTransmit(void)
{
uint8 status; ISTXON();
while(!(RFIRQF1 & IRQ_TXDONE));
RFIRQF1 = ~IRQ_TXDONE;
status = SUCCESS;
return status;
}
最近我也在做CC2530 CCA相关的功能,多个子节点同时给一个父节点发送数据的时候,经常会造成信道阻塞,想在发送数据前加个CCA的功能,判断信道是否为空闲,空闲就发数据,不空闲就等待几十毫秒,然后再判断信道是否空闲,最大判断次数为3次,如果3次之后还不空闲,就进入休眠,看了好几遍的数据手册,都没看出个大概来怎么操作,一头雾水,TI也没有提供一个示例,不知道楼主这个问题是怎么解决的,可否给些指导?