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,这是为什么呢?
2020-6-3 11:17:10
我之前好像也遇到过这个问题,貌似原子哥的设置发送和接受模式函数在CE拉高后缺少一点延时,设置接受模式CE拉高后130us才开始检测空中信息,设置发送模式CE至少拉高10us开始启动发射
我之前好像也遇到过这个问题,貌似原子哥的设置发送和接受模式函数在CE拉高后缺少一点延时,设置接受模式CE拉高后130us才开始检测空中信息,设置发送模式CE至少拉高10us开始启动发射
举报
2020-6-3 11:23:59
其实我有几次用延时函数 也出现过问题 是不是延时函数的问题 相对用系统时钟来确定的delay 我还是喜欢用nop
其实我有几次用延时函数 也出现过问题 是不是延时函数的问题 相对用系统时钟来确定的delay 我还是喜欢用nop
举报
2020-6-3 11:36:04
开启接受应答了,如果没加延时的话,那个发送方会老是发送达最大次数
开启接受应答了,如果没加延时的话,那个发送方会老是发送达最大次数
举报