我在调试nrf24l01时遇到了这个问题,节点初始化是二对一,两个发,一个收,接收节点使用数据通道0和1。按照我的理解,此时接收节点的两个寄存器应该这么设置,
nrf24l01_reg_rw(W_REGISTER + EN_AA, 0x03);
nrf24l01_reg_rw(W_REGISTER + EN_RXADDR, 0x03);
但是这样设置以后,只有数据通道1能收到数据。
然后我分别测试两个数据通道,只修改接收节点的前面说到的两个寄存器的设置,
如设置接收节点
nrf24l01_reg_rw(W_REGISTER + EN_AA, 0x01);
nrf24l01_reg_rw(W_REGISTER + EN_RXADDR, 0x01);
表示只和数据通道0对应的发送节点通信;
如设置接收节点
nrf24l01_reg_rw(W_REGISTER + EN_AA, 0x02);
nrf24l01_reg_rw(W_REGISTER + EN_RXADDR, 0x02);
表示只和数据通道1对应的发送节点通信;
分别测试一对一通信,发现均能接受到数据,这说明两个数据通道的收发双方的地址都是对的。
那么,为什么改成二对一就不行了呢?请教各位做多对一的网友。
一周热门 更多>