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.

CC2530的BasicRF里如何添加空闲信道检测

您好!我想问个问题,在BasicRF里有个发送帧与空闲信道评估的函数里,没发现空闲信道评估的代码,请问如何添加呢,因为我们公司这个系统里会有几千个子节点存在,但在同一时间只会有上百个子节点向一个主节点发数据(每个子节点发送给主节点的净载荷为8个字节,主节点回传4个字节),谁先完成一次通信就先进入长期睡眠(10秒)没完成的间隔1秒后重发直到完成一次通信。没用到组网的协议栈,就是简单的BasicRF协议,试了几个同时还行,多了就会通信时间很长(有对冲),请指点谢谢!

uint8 halRfTransmit(void)

      uint8 status;     ISTXON();  

      while(!(RFIRQF1 & IRQ_TXDONE)); 

      RFIRQF1 = ~IRQ_TXDONE;          

      status = SUCCESS;     

      return status;

}

  • 以下是网友贴出的解决代码,但测试无法使用,第一次正常后就不发射数据了,不知何故?请老师指点,谢谢!

    uint8 halRfTransmit(void)

    {

          uint8 status;    

         CCACTRL0 = 0xF8;

         ISRXON(); 

         while(!(RSSISTAT & BV(0)));//增加这两句,其实就是要打开接收器,并等RSSI值稳定,才能执行CCA

         ISTXONCCA(); 

          while(!(RFIRQF1 & IRQ_TXDONE));

          RFIRQF1 = ~IRQ_TXDONE;         

          status = SUCCESS;    

          return status;

    }