今天用c8t6和nrf24l01想做个通讯,可是发现接收端并没有接收到数据,然后
仿真了一下,发现数据并没用发送出去。然后用原子哥的mini板下了一个例程,开了接收模式,
通信频道也一样,我发现每次发送端重新上电的那一瞬间或者开启仿真的那一瞬间,mini
开发板可以接收到一次数据,后面就再也接收不到了。。请问是什么问题啊?
2020-7-13 14:50:18
我之前也做这个NRF,用例程,发现会丢包,或者只能发一次这样的现象,然后问了我同学帮我改了一下接受和发送的函数,再加上我自己又改了下main函数里的代码比以前稳一点了,基本不丢包,能多次发送。
初始化代码,原子哥的例子不错
在main函数里写
先做器件检测
while(NRF24L01_Check())
{
oled_printf(0,0,"NRF24L01 Error");
delay_ms(200);
oled_printf(0,1,"NRF24L01 Wait");
delay_ms(200);
}
oled_printf(0,2,"NRF24L01 OK");
再设置NRF模式为接受模式(平时不发数据让它处在接受模式)
NRF24L01_RX_Mode();
再设置按键选择模式
比如mode = 0是接受,mode = 1是发送 用按键去做选择
接下来分模式去做
接受部分的代码
接受
NRF24L01_RX_Mode();
if(NRF24L01_RxPacket(rx_buf)==0)
{
delay_ms(100);
rx_buf[sizeof("你自己设置的字符串")-1]='