nRF24L01调试问题及解决方案(软件复位)

2019-04-14 20:16发布

问题描述: nRF24L01初次上电没有任何问题,单片机复位或者更新程序之后,nRF24L01接收模式不工作。但是给电路板重新上电之后问题得以解决。 问题产生原因: 单片机突然停止对nRF24L01的SPI操作,中断之后产生了一些莫名的现象。比如我遇到的情况是,接受缓冲器有数据,而中断管脚则不再响应。 由于电路板不断电,那说明nRF24L01不会存在上电复位这一环节。不幸的是,这玩意居然没有软件复位功能。 解决方案: 第一,   读取STATUS寄存器内容,然后写进去。用来清状态寄存器的标志位。此时要注意RXFIFO的状态。出问题了一般不会是111. 第二,   既然数据缓冲区有数据,那说明需要把数据读出来。读完之后无论是FIFO状态寄存器还是STATUS寄存器,都会有响应的变化。 第三,   既然知道问题所在了,就应该在初始化的时候检测一遍缓冲区状况。把里面的残留的数据给释放掉。这是一劳永逸的方法。