nRF24L01的0~5管道接收配置注意事项
)
最近在研究nRF24L01的通信,目前只实现了比价简单的收发功能,不过想做一个小小的总结,主要是nRF24L01的0~5管道在配置接收的时候遇到了一些问题,后来在网上查了一些资料,找到了解决办法,想记录一下怕自己忘了。。。
首先上传一张图片,这个是nRF24L01的PDF中一张图片,描述了一收多发的情况,接收端可以同时通过6个通道接收6个不同的发送端发来的数据。在配置通道0 的时候比较容易,网上的例程也都是讲的通道0.通道1~5的时候就出现了问题,无论如何配置也都无法收到数据。
第一点发送端不能改变,代码如下。
`void RX_Mode(unsigned char *addr_buf,uint8_t data_num)
{
nRF24L01_CEL;
delay();
// 接收设备接收通道0使用和发送设备相同的发送地址
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, addr_buf, 5); // Use the same address on the RX device as the TX device
SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // Enable Auto.Ack:Pipe0 // 使能接收通道0自动应答
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // Enable Pipe0 // 使能接收通道0
SPI_RW_Reg(WRITE_REG + RF_CH, 40); // Select RF channel 40 // 选择射频通道0x40
SPI_RW_Reg(WRITE_REG + RX_PW_P0,