导读:每一个器件的学习都需要进行功能测试,这些测试结果有必要记录下来,方便下次使用,所以鱼鹰在这放上自己的测试记录,以供参考。
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浏览器打开,启用网页翻译即可翻译,虽然不是翻译的特别好,但对照英文一起看还是比较方便的。
推荐阅读:
-THE END-
如果觉得文章对你有帮助,欢迎转发、分享给朋友,感谢你的支持!
如果对本文有问题,欢迎留言!即使没有问题也可以留下的神评论。
如需转载请联系我。
微信公众号「鱼鹰谈单片机」
每周一更单片机知识
长按后识别图中二维码关注