调了好几天的nRF24L01,看好好多网友写的代码,基本相同,但就是调不通。
然后检查电路硬件,也没有问题。
最后,还是把DataSheet拿过来看寄存器,读STATUS寄存器,发现MAX_RT位总为‘1’;然后百度搜了一下原因
杭电王同学的解释在最下方,真实拨开云雾见青天!!!
最后的解决方法如王同学所说,在void nRF24L01_TxPacket(char * tx_buf)函数中,加上如下四行代码:
uchar sta;
sta=SPI_Read(STATUS);
if(sta & 0x10 == 0x10)
SPI_RW_Reg(WRITE_REG+STATUS,sta);
便成功解决了问题!!!在此鸣谢王同学!