nrf51822与nrf24l01之间的无线通讯

nrf51822和nrf24l01同属于nordic公司下的产品,在射频方面能够做到兼容,但是开发过程中遇到一些问题,特此做个记录


想要两者能够互相通讯,需要注意以下一些配置
1. 白化: nrf51822的射频为了提高抗干扰能力,加入白化功能,但是nrf24l01没有此功能,所以nrf51822端必须关闭(PCNF1.WHITEEN = 0),否则引起数据乱码。
2. 地址长度:地址长度两者都可以设置成3~5字节,但是必须要设置一致,否则就算能够接收到也是乱码。
3. 信道:必须设置一致,否则无法通讯
4. 速率:必须设置一致,否则无法通讯
5. CRC:必须关闭CRC校验,可以自己在报文中添加CRC校验,如果没有关闭CRC校验,出现的情况是nrf51822可以接收到nrf24l01的报文,反之不行,具体可以参考这里
6. 地址:必须设置成一致,否则无法通讯,需要注意的是两者地址需要位交换及字节交换,具体的对应关系如下

nrf24l01 nrf51822
ADDR[ 0.. 7] PREFIX[ 7.. 0]
ADDR[ 8..15] BASE0 [31..24]
ADDR[16..23] BASE0 [23..16]
ADDR[24..31] BASE0 [15.. 8]
ADDR[32..39] BASE0 [ 7.. 0]

前期调试的时候,可以将地址(假设为4字节)设置成0x66666666,等可以互相通讯之后,再测试地址。

你可能感兴趣的:(嵌入式开发)