原子哥你好,现在可以实现你所说的功能了,但是偶尔会出错。比如我按1键灯1亮灯2灭,2键灯2亮灯1灭;但是偶尔效果却会反过来1键灯2亮;也出现了1键按3次灯1才亮,2键也是按3次灯2亮,不多不少就三次。
while(!nRF24L01_RxPacket(Rx_Buf)) //等待接收数据 ,返回1则接收到数据 ,在等待接收数据期间,可以随时变成发送模式
{
if(KEY8==0) //按了按键8 则变成发送模式,发送对应数据,发送完后变成接收模式
{
delay_ms(10);//消抖动
if(KEY8==0)
{
uchar Tx_Buf1[]={1}; //发送的数据
while(!KEY8);
TX_Mode(); //发送模式
nRF24L01_TxPacket(Tx_Buf1); // 发送Tx_Buf1中的数据
break; //退出最近的循环,从而变回接收模式,这句关键
}
}
if(KEY7==0) //按了按键7 则变成发送模式,发送对应数据,发送完后变成接收模式
{
delay_ms(10);//消抖动
if(KEY7==0)
{
uchar Tx_Buf1[]={2};
while(!KEY7);
TX_Mode(); //发送模式
nRF24L01_TxPacket(Tx_Buf1); // 发送命令数据
break; //退出最近的循环,从而变回接收模式,这句关键
}
}
if(Rx_Buf[0]==1) //若接收到对应的数据则实现对应功能
{
delay_ms(10);
 2=0xf0; //灯1亮灯2灭
}
if(Rx_Buf[0]==2)
{
delay_ms(10);
 2=0x0f;
delay_ms(300);
P2=~P2;
delay_ms(300);
}
}
请问问题出在什么地方?
原子哥你好,现在可以实现你所说的功能了,但是偶尔会出错。比如我按1键灯1亮灯2灭,2键灯2亮灯1灭;但是偶尔效果却会反过来1键灯2亮;也出现了1键按3次灯1才亮,2键也是按3次灯2亮,不多不少就三次。
while(!nRF24L01_RxPacket(Rx_Buf)) //等待接收数据 ,返回1则接收到数据 ,在等待接收数据期间,可以随时变成发送模式
{
if(KEY8==0) //按了按键8 则变成发送模式,发送对应数据,发送完后变成接收模式
{
delay_ms(10);//消抖动
if(KEY8==0)
{
uchar Tx_Buf1[]={1}; //发送的数据
while(!KEY8);
TX_Mode(); //发送模式
nRF24L01_TxPacket(Tx_Buf1); // 发送Tx_Buf1中的数据
break; //退出最近的循环,从而变回接收模式,这句关键
}
}
if(KEY7==0) //按了按键7 则变成发送模式,发送对应数据,发送完后变成接收模式
{
delay_ms(10);//消抖动
if(KEY7==0)
{
uchar Tx_Buf1[]={2};
while(!KEY7);
TX_Mode(); //发送模式
nRF24L01_TxPacket(Tx_Buf1); // 发送命令数据
break; //退出最近的循环,从而变回接收模式,这句关键
}
}
if(Rx_Buf[0]==1) //若接收到对应的数据则实现对应功能
{
delay_ms(10);
 2=0xf0; //灯1亮灯2灭
}
if(Rx_Buf[0]==2)
{
delay_ms(10);
 2=0x0f;
delay_ms(300);
P2=~P2;
delay_ms(300);
}
}
请问问题出在什么地方?
举报