最近在调试NRF24L01 用的是网上常规的205的demo,又找了野火的demo进行修改,目前通讯都比较正常了,但是有一个问题,必须提前给接收方上电,再给发送方上电,才能够正常通讯,否则发送方就会提示发送失败(达到超时次数)!!!
while(1)
{
#ifdef Open_TX
TX_Mode(TX_BUF);
NRF24L01_Send();
//_printf("rnSend data£o0x%xrn",TX_BUF[0]);
Delay(0xffff);
#else
RX_Mode();
NRF24L01_Receive();
Delay(0x3fff);
#endif
}
void NRF24L01_Send(void)
{
u8 status=0x00;
sta
tic u8 sss;
//delay1us(10);
CE(0);
SPI_Write_Buf(WR_TX_PLOAD, TX_BUF, TX_PLOAD_WIDTH);
CE(1);
while(IRQ);
delay1us(10);
status=SPI_Read_Reg(STATUS); // ¶áè¡×′쬼Ä′æÆäà′ÅD¶Ïêy¾Y½óêÕ×′¿ö
SPI_RW_Reg(WRITE_REG_NRF24L01 + STATUS, status); // Çå3yTX£¬èÃIRQà-μí£»
SPI_RW_Reg(FLUSH_TX,NOP);
//printf("STATUS½óêü×′쬣o0x%2xrn",status);
if(status&TX_DS) /*tx_ds == 0x20*/
{
//printf("STATUS½óêü×′쬣o0x%2xrn",status);
printf("rnSEND OK0x%2x",sss++);
}
else if(status&MAX_RT)
{
//Delay(0xffffff);
printf("rnSEND ERROR!!!");
//SPI_RW_Reg(WRITE_REG_NRF24L01 + STATUS, 0x10); // Çå3yTX£¬èÃIRQà-μí£»
}
}