51单片机与NRF24L01通信程序包括发送和接收两部分,NRF24L01.H 文件里有#define MODE 1 //MODE=1时 为发送代码 MODE=0时 为接收代码。
在主函数里有
#if MODE //发送 模式代码
TX_Mode();
//SPI_RW_Reg(FLUSH_RX,0x00);
while(1)
{
Transmit(Tx_Buf);
Delay(10);
sta = SPI_Read(READ_REG + STATUS);
if(TX_DS)
{
P1 = sta; //8位LED显示当前STATUS状态 发送中断应使bit5 = 1 灯灭
Delay(100);
SPI_RW_Reg(WRITE_REG + STATUS, sta);
}
if(MAX_RT) //如果是发送超时
{
P1 = sta; //发送超时时 8位LED灯 bit4 = 1 灯灭
Delay(150);
SPI_RW_Reg(WRITE_REG + STATUS, sta);
}
}
#else //接收 模式代码
StartUART();
RX_Mode();
Delay(0);//防止编译警告
while(1)
{
if(nRF24L01_RxPacket(Rx_Buf))
{
LED = 0;
Delay(100);
for(i = 0; i < TX_PLOAD_WIDTH; i++)
{
R_S_Byte(Rx_Buf[i]);
}
}
else
{
LED = 1;
}
}
#endif
故你把MODE设置为1,它就是发送程序
而MODE设置为0,它就是接收程序
1