天线|RF射频
直播中

卢灏

7年用户 149经验值
私信 关注
[问答]

NRF24L01中间必须加延时才能正常接受,否则发送端达到最大发送次数是什么原因?

Rx_Led_State()
{
                          LCD_ShowString(60,150,200,16,16,"NRF24L01 RX_Mode");
                          NRF24L01_RX_Mode(Slave_Address);
                          delay_ms(50);
                          if(NRF24L01_RxPacket(RX_DATA,1)==0);
                                {  
                                                LED1=0;
                                                LCD_Fill(60,230,239,230+16,WHITE);
                                          if(RX_DATA[0]==LED_ON)
                                                LCD_ShowString(80,230,239,32,16,"LED_ON");
                                                else if(RX_DATA[0]==LED_OFF)
                                                LCD_ShowString(80,230,239,32,16,"LED_OFF");                                         
                                                else  
                                                {
                                                    sprintf((char*)CHECK_DATA,"%02x",RX_DATA[0]);                                       
                                                           LCD_ShowString(80,230,239,32,16,CHECK_DATA);                                                     
                                                }
                                                LED1=1;
                                }                                                
                                
}
我在NRF24L01_RX_Mode(Slave_Address);与 if(NRF24L01_RxPacket(RX_DATA,1)==0);中间加了一个50ms以上延时才能正常接受,如果不加这个延时就一直不能接收,读出来的数据一直是00,这是为什么呢?

回帖(4)

李子月

2020-6-3 11:05:11
开启了接收应答么?可能是接收方回应比较慢。
举报

陈秀春

2020-6-3 11:17:10
我之前好像也遇到过这个问题,貌似原子哥的设置发送和接受模式函数在CE拉高后缺少一点延时,设置接受模式CE拉高后130us才开始检测空中信息,设置发送模式CE至少拉高10us开始启动发射
举报

宁晓蕾

2020-6-3 11:23:59
其实我有几次用延时函数 也出现过问题 是不是延时函数的问题  相对用系统时钟来确定的delay 我还是喜欢用nop
举报

陈晓露

2020-6-3 11:36:04
开启接受应答了,如果没加延时的话,那个发送方会老是发送达最大次数
举报

更多回帖

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