NRF24L01+之鱼鹰测试记录(六)_数据


导读:每一个器件的学习都需要进行功能测试,这些测试结果有必要记录下来,方便下次使用,所以鱼鹰在这放上自己的测试记录,以供参考。


NRF_FLUSH_TX


NRF_FLUSH_RX

该指令执行后接收数据清除,但是接收中断标志位(该位写 1 可以清除)和接收长度(一直保持不变,除非接收到新数据)不变。但是通过读取状态寄存器可以发现接收通道号变为 111b,即 RX FIFO 为空。所以需要通过该位域确定是否接收到数据。并且如果发送端接收到应答信号时,接收中断标志位置 1。

NRF_RD_RX_PLOAD

该指令用于读取 RXFIFO 数据。从字节 0 开始。如果已经读取了数据,那么再次读取时读取的是最后一个字节数据。

如:RX FIFO 数据:   0x01 0x02 0x03 0x04 0x05

    执行NRF_RD_RX_PLOAD 后,读取的数据为 0x010x02 0x03 0x04 0x05

如果期间没有数据(没有接收新数据或者只接收了应答信号)接收长度寄存器还是5,没有改变。

执行 NRF_RD_RX_PLOAD后,读取的数据为 0x05 0x05 0x05 0x05 0x05

数据读完之后状态寄存器的 RX_P_NO_FIELD位域是 111b

发送中断

发送端:

        接收到应答信号(无数据或者带数据)时,进入发送完成中断。

接收端:有可能进入发送完成中断。具体原因未知。

接收中断

发送端:

接收到应答信号时也会有接收中断标志位。但是RX_P_NO_FIELD 位域是 111b,即 RX FIFO 为空。

接收端:

最大重发中断

最大重发中断:

        一旦清除该位,继续开始上一次数据重发。


情形 1:发送端断电后重新配置,发送端发送一包数据,接收端未工作

清除最大重发中断标志后继续重发数据。一旦开始接收端开始工作,进入发送中断和接收中断(如果有应答信号有数据)

情形 2:首先执行接收端,发送端后执行。发送端第一次复位(发数据包),接收端只有接收中断,发送端第二次复位(发数据包),有发送和接收两个中断。之后发送端再复位(发送数据包)时只有一个接收中断。也就是说只要接收端不复位,就不会出现这种情况。


最后说一句:这是大四的时候翻译的第一篇英文文档,所以意义比较重大,将其发在公众号中,以后就没有相关的翻译文档公布了。如果你实在不会英语,那么将pdf转化为网页文件,用Google浏览器打开,启用网页翻译即可翻译,虽然不是翻译的特别好,但对照英文一起看还是比较方便的。



推荐阅读:

​为什么说你一定要掌握 KEIL 调试方法?​


-THE END-



如果觉得文章对你有帮助,欢迎转发、分享给朋友,感谢你的支持!


如果对本文有问题,欢迎留言!即使没有问题也可以留下的神评论NRF24L01+之鱼鹰测试记录(六)_接收端_02


如需转载联系我。


微信公众号「鱼鹰谈单片机

每周一更单片机知识

NRF24L01+之鱼鹰测试记录(六)_数据_03

长按后识别图中二维码关注