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