新手上路
- 积分
- 30
- 金钱
- 30
- 注册时间
- 2013-3-21
- 在线时间
- 0 小时
|
楼主 |
发表于 2013-3-24 15:57:07
|
显示全部楼层
回复【2楼】正点原子:
<br>---------------------------------
<br>原子哥你好,现在可以实现你所说的功能了,但是偶尔会出错。比如我按1键灯1亮灯2灭,2键灯2亮灯1灭;但是偶尔效果却会反过来1键灯2亮;也出现了1键按3次灯1才亮,2键也是按3次灯2亮,不多不少就三次。
<br> while(!nRF24L01_RxPacket(Rx_Buf)) //等待接收数据 ,返回1则接收到数据 ,在等待接收数据期间,可以随时变成发送模式
<br> {
<br> if(KEY8==0) //按了按键8 则变成发送模式,发送对应数据,发送完后变成接收模式
<br> {
<br> delay_ms(10);//消抖动
<br> if(KEY8==0)
<br> {
<br> uchar Tx_Buf1[]={1}; //发送的数据
<br> while(!KEY8);
<br> TX_Mode(); //发送模式
<br> nRF24L01_TxPacket(Tx_Buf1); // 发送Tx_Buf1中的数据
<br> break; //退出最近的循环,从而变回接收模式,这句关键
<br> }
<br>
<br> }
<br>
<br> if(KEY7==0) //按了按键7 则变成发送模式,发送对应数据,发送完后变成接收模式
<br> {
<br> delay_ms(10);//消抖动
<br> if(KEY7==0)
<br> {
<br> uchar Tx_Buf1[]={2};
<br> while(!KEY7);
<br> TX_Mode(); //发送模式
<br> nRF24L01_TxPacket(Tx_Buf1); // 发送命令数据
<br> break; //退出最近的循环,从而变回接收模式,这句关键
<br> }
<br> }
<br>
<br> if(Rx_Buf[0]==1) //若接收到对应的数据则实现对应功能
<br> {
<br> delay_ms(10);
<br>  2=0xf0; //灯1亮灯2灭
<br> }
<br>
<br> if(Rx_Buf[0]==2)
<br> {
<br> delay_ms(10);
<br>  2=0x0f;
<br> delay_ms(300);
<br> P2=~P2;
<br> delay_ms(300);
<br>
<br> }
<br>
<br> }
<br>
<br>
<br>请问问题出在什么地方? |
|