天线|RF射频
直播中

范琴英

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

NRF2401程序知多少?

                                         
                                                                            while(1)

  {

    while(1)//在该部分确定进入哪个模式!

{

  key=keyscan();

  if(key==1)

  {

   mode=0;   

   break;

  }else if(key==2)

  {

   mode=1;

   break;

  }

  t++;

  if(t==100) //闪烁显示提示信息

  {

  // LCD_ShowString(10,150,"                          ");//清空显示  

  }

  if(t==200)

  {

   t=0;

  // LCD_ShowString(10,150,"KEY0:RX_Mode  KEY1:TX_Mode");

  }

  //delay_ms(5);


}

//LCD_Fill(10,150,240,166,WHITE);//清空上面的显示   

// OINT_COLOR=BLUE;//设置字体为蓝色   

if(mode==0)//RX模式

{

  

  RX_Mode();   

  while(1)

  { printf("rn 2401 rxdata:rn");                  

   if(NRF24L01_RxPacket(tmp_buf)==0)//一旦接收到信息,则显示出来.

   {

      

    tmp_buf[32]=0;   //加入字符串结束符

    for(i=0;i<32;i++)

    {

       printf("%c",tmp_buf);

    //LCD_ShowString(0,190,tmp_buf);

    }

    printf("rn");

   }else //delay_us(100);   

   t++;

   if(t==100)//大约1s钟改变一次状态

   {

    t=0;

   

   }         

  }; .............................................................................

这个程序,用while来判断进入哪个模式,可是while(1)//在该部分确定进入哪个模式!

{

  key=keyscan();

  if(key==1)

  {

   mode=0;   

   break;

  }else if(key==2)

  {

   mode=1;

   break;

  }

  t++;

  if(t==100) //闪烁显示提示信息

  {

  // LCD_ShowString(10,150,"                          ");//清空显示  

  }

  if(t==200)

  {

   t=0;

  // LCD_ShowString(10,150,"KEY0:RX_Mode  KEY1:TX_Mode");

  }

  //delay_ms(5);


}


这个不是死循环了吗。怎么还会执行下面的收发数据呢,实际上实际可以的,,望原子哥给我解释一下,感谢啊、、、

回帖(5)

崔璨

2020-4-27 09:13:01

先要按键选择是主机还是从机...

选中了以后,就进入2个死循环里面的一个。
举报

刘慧

2020-4-27 09:28:39
是的,可是,我怎么觉得出不了 

while(1)//在该部分确定进入哪个模式!

  {

   key=keyscan();

   if(key==1)

   {

    mode=0;   

    break;

   }else if(key==2)

   {

    mode=1;

    break;

   }

   t++;

   if(t==100) //闪烁显示提示信息

  {

   // LCD_ShowString(10,150,"                          ");//清空显示  

   } 

   if(t==200)

   {

    t=0;

   // LCD_ShowString(10,150,"KEY0:RX_Mode  KEY1:TX_Mode");

   }

   //delay_ms(5);



 }

因为这里就是死循环了啊
举报

王桂英

2020-4-27 09:46:12
if(key==1) 

   { 

    mode=0;    

    break; 

   }else if(key==2) 

   { 

    mode=1; 

    break; 

   } 



这不有break么????
举报

张玉

2020-4-27 09:53:38
哦!!没注意啊,谢谢啊,现在又有一个问题啊,就是,我想要用2中不同的单片机进行NRF2401的通信,要注意些什么,可以吗,他们2个的电平一个3.3V,一个5V,应该没影响吧
举报

更多回帖

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