OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6991|回复: 5

原子哥,其实一直有个问题困扰着我,你写的NRF2401的程序,我怎么理解不了。望解释一下

[复制链接]

36

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
265
金钱
265
注册时间
2013-8-3
在线时间
0 小时
发表于 2013-8-29 18:26:39 | 显示全部楼层 |阅读模式
<p>                                         
                                                                            while(1)<br />
&nbsp; {<br />
&nbsp; &nbsp;&nbsp;while(1)//在该部分确定进入哪个模式!<br />
&nbsp;{<br />
&nbsp;&nbsp;key=keyscan();<br />
&nbsp;&nbsp;if(key==1)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;mode=0;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;}else if(key==2)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;mode=1;<br />
&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;t++;<br />
&nbsp;&nbsp;if(t==100) //闪烁显示提示信息<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;//&nbsp;LCD_ShowString(10,150,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ");//清空显示&nbsp; <br />
&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;if(t==200)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;t=0;<br />
&nbsp;&nbsp;//&nbsp;LCD_ShowString(10,150,"KEY0:RX_Mode&nbsp; KEY1:TX_Mode");<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;//delay_ms(5);</p>
<p>&nbsp;}<br />
&nbsp;//LCD_Fill(10,150,240,166,WHITE);//清空上面的显示&nbsp;&nbsp;&nbsp; <br />
&nbsp;//&nbspOINT_COLOR=BLUE;//设置字体为蓝色&nbsp;&nbsp;&nbsp; <br />
&nbsp;if(mode==0)//RX模式<br />
&nbsp;{<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;RX_Mode();&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;while(1)<br />
&nbsp;&nbsp;{&nbsp;printf("\r\n 2401 rxdata:\r\n");&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;if(NRF24L01_RxPacket(tmp_buf)==0)//一旦接收到信息,则显示出来.<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;tmp_buf[32]=0;&nbsp;&nbsp; //加入字符串结束符<br />
&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;32;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%c",tmp_buf);<br />
&nbsp;&nbsp;&nbsp;&nbsp;//LCD_ShowString(0,190,tmp_buf);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;printf("\r\n"); <br />
&nbsp;&nbsp;&nbsp;}else //delay_us(100);&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;t++;<br />
&nbsp;&nbsp;&nbsp;if(t==100)//大约1s钟改变一次状态<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;t=0;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;};&nbsp;.............................................................................<br />
这个程序,用while来判断进入哪个模式,可是while(1)//在该部分确定进入哪个模式!<br />
&nbsp;{<br />
&nbsp;&nbsp;key=keyscan();<br />
&nbsp;&nbsp;if(key==1)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;mode=0;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;}else if(key==2)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;mode=1;<br />
&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;t++;<br />
&nbsp;&nbsp;if(t==100) //闪烁显示提示信息<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;//&nbsp;LCD_ShowString(10,150,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ");//清空显示&nbsp; <br />
&nbsp;&nbsp;}&nbsp;<br />
&nbsp;&nbsp;if(t==200)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;t=0;<br />
&nbsp;&nbsp;//&nbsp;LCD_ShowString(10,150,"KEY0:RX_Mode&nbsp; KEY1:TX_Mode");<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;//delay_ms(5);</p>
<p>&nbsp;}</p>
<p>这个不是死循环了吗。怎么还会执行下面的收发数据呢,实际上实际可以的,,望原子哥给我解释一下,感谢啊、、、</p>
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-8-29 20:52:51 | 显示全部楼层
回复【楼主位】1756143812:
<br>---------------------------------
<br>先要按键选择是主机还是从机...
<br>选中了以后,就进入2个死循环里面的一个。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

36

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
265
金钱
265
注册时间
2013-8-3
在线时间
0 小时
 楼主| 发表于 2013-8-30 22:18:50 | 显示全部楼层
回复【2楼】正点原子:
<br>---------------------------------是的,可是,我怎么觉得出不了&nbsp;
<br>while(1)//在该部分确定进入哪个模式!
<br>&nbsp;&nbsp;{
<br>&nbsp;&nbsp;&nbsp;key=keyscan();
<br>&nbsp;&nbsp;&nbsp;if(key==1)
<br>&nbsp;&nbsp;&nbsp;{
<br>&nbsp;&nbsp;&nbsp;&nbsp;mode=0;&nbsp;&nbsp;&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;break;
<br>&nbsp;&nbsp;&nbsp;}else&nbsp;if(key==2)
<br>&nbsp;&nbsp;&nbsp;{
<br>&nbsp;&nbsp;&nbsp;&nbsp;mode=1;
<br>&nbsp;&nbsp;&nbsp;&nbsp;break;
<br>&nbsp;&nbsp;&nbsp;}
<br>&nbsp;&nbsp;&nbsp;t++;
<br>&nbsp;&nbsp;&nbsp;if(t==100)&nbsp;//闪烁显示提示信息
<br>&nbsp;&nbsp;{
<br>&nbsp;&nbsp;&nbsp;//&nbsp;LCD_ShowString(10,150,"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");//清空显示&nbsp;&nbsp;
<br>&nbsp;&nbsp;&nbsp;}&nbsp;
<br>&nbsp;&nbsp;&nbsp;if(t==200)
<br>&nbsp;&nbsp;&nbsp;{
<br>&nbsp;&nbsp;&nbsp;&nbsp;t=0;
<br>&nbsp;&nbsp;&nbsp;//&nbsp;LCD_ShowString(10,150,"KEY0:RX_Mode&nbsp;&nbsp;KEY1:TX_Mode");
<br>&nbsp;&nbsp;&nbsp;}
<br>&nbsp;&nbsp;&nbsp;//delay_ms(5);
<br>
<br>&nbsp;}
<br>因为这里就是死循环了啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-8-30 23:03:12 | 显示全部楼层
if(key==1)&nbsp;
<br>&nbsp;&nbsp;&nbsp;{&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;mode=0;&nbsp;&nbsp;&nbsp;&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;
<br>&nbsp;&nbsp;&nbsp;}else&nbsp;if(key==2)&nbsp;
<br>&nbsp;&nbsp;&nbsp;{&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;mode=1;&nbsp;
<br>&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;
<br>&nbsp;&nbsp;&nbsp;}&nbsp;
<br>
<br>这不有break么????
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

36

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
265
金钱
265
注册时间
2013-8-3
在线时间
0 小时
 楼主| 发表于 2013-8-31 18:33:30 | 显示全部楼层
回复【4楼】正点原子:
<br>---------------------------------哦!!没注意啊,谢谢啊,现在又有一个问题啊,就是,我想要用2中不同的单片机进行NRF2401的通信,要注意些什么,可以吗,他们2个的电平一个3.3V,一个5V,应该没影响吧
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-8-31 22:48:06 | 显示全部楼层
可以
<br>注意别直接接5V到NRF24L01
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 18:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表