PC
要实现nRF24L01的ACK PAYLOAD功能需要经过以下步骤:首先进行无线模块的基本配置,包括发送接收模式的选择(CONFIG)——收发模式、配置模式、空闲模式、关机模式。
开启自动重传功能(EN_AA)、 接收地址使能(EN_ADDR)、 设置重传时问不为零(SET-UP RETR)等;然后同时开启DPL和ACK PAYLOAD功能,要实现这两个功能,必须在完成第一步之后用nRF24L01白带的ACTIVATE命令加上0x73数据开启默认隐藏的两个寄存器FEATURE和DYNPD。通过对这两个寄存器的设置就可以实现数据的双向通信。但要注意,接收端开启DPL后要使用R_RX PL WID命令读取当前数据帧的有效数据长度,同时使用W ACK PAY-LOAD命令将ACK PAYLOAD写入FIFO。
nRF24L01先处于接收状态一直接收数据,若有中断则让nRF24L01处于发送模式发送一串数字后返回接收模式。
while(1) { if(flag1){ TX_Mode2(RX_BUF2); // 设置为发送模式 sta=SPI_Read(STATUS); //读取状态寄存器的值 SPI_RW_Reg(WRITE_REG+STATUS,sta); //清除TX_DS或MAX_RT中断标志 flag1=0; } RX_Mode(); // 设置为接收模式 for(i=0;i
// 数据送到LED显示 Hum_X = RX_BUF[1]; // 数据送到LED显示 Tem_Z = RX_BUF[2]; // 数据送到LED显示 Tem_X = RX_BUF[3]; // 数据送到LED显示 LCD_Display1(); } } RX_Mode1(); for(i=0;i
如果看不懂,请教专业人员。