数据包格式:
| 前导码(1byte) | 地址(2-5byte) | 包控制字(9bit) | 负载数据(0-32byte) | CRC(1-2byte) |

前导码:rf芯片识别空中数据开始的标记,根据后续内容的最高位,有两种取值 0xAA 和 0x55 。
地址:当空中数据包地址和接收地址相同rf芯片才会接受。可配置长度为2-5个字节,长度越短越容易收到干扰数据。
包控制字:重传机制,变长数据包特性,会使用这个字断。其中内容为 数据包长度,数据包pid,是否需要回包。关闭重传机制和变长数据包则这个字断不会被加入数据包。
CRC:即数据包的CRC校验码,可配置为1byte或2byte,也可以关闭不加入数据包。但是启用自动重传机制则必须打开。

nrf24物理层三个关键参数:信道,速率,功率。信道和速率必须一致才可以通讯,功率决定通讯距离。上述参数是通过修改 RF_CH 和 RF_SETUP 寄存器完成的。

nrf24_rf_ch.png
nrf24_rf_setup.png

在测试 nrf24 spi 通讯的时候,在萝莉分析仪上已经看到有数据传回了,但是在 stm32 里还是读不到数据。经过多番查证发现 FRXTH 这个标记搞的鬼。没有置位 FRXTH 的时候,需要16bit才能触发 RXNE。置位只要 8bit。

QQ20201021-164357.png