天线|RF射频
直播中

颜珍可

7年用户 196经验值
私信 关注
[问答]

请问NRF24L01六发一收的地址如何设置?

我给接收端的六个通道设置地址时,只有通道0和1的地址读回来是对的,设置是有什么注意吗??  谢谢

我通过数组

const uchar RX_ADDRESS0[RX_ADR_WIDTH]={0x00,0x10,0x10,0x34,0x43}; //接收通道地址

const uchar RX_ADDRESS1[RX_ADR_WIDTH]={0x01,0x10,0x10,0x34,0x43};

const uchar RX_ADDRESS2[RX_ADR_WIDTH]={0x02,0x10,0x10,0x34,0x43};

const uchar RX_ADDRESS3[RX_ADR_WIDTH]={0x03,0x10,0x10,0x34,0x43};

const uchar RX_ADDRESS4[RX_ADR_WIDTH]={0x04,0x10,0x10,0x34,0x43};

const uchar RX_ADDRESS5[RX_ADR_WIDTH]={0x05,0x10,0x10,0x34,0x43};   设置

可是2345通道都设置成了43 43 43 43 43 呢


回帖(2)

李玉英

2020-4-22 09:25:30
问题已解决,我使用的NRF24L01给6个通道设置地址时,0和1 可以设置5位,而2345只能设置其最低位,其他位锁定为和1通到的相同,并且我使用这个无线2345通到地址的高32位不能设置,其他的nrf24l01可能可以设置,不过要和1通到的高32位相同

代码如下

const uchar RX_ADDRESS0[RX_ADR_WIDTH]={0x00,0x10,0x10,0x34,0x43}; //接收通道地址

const uchar RX_ADDRESS1[RX_ADR_WIDTH]={0x01,0x10,0x10,0x34,0x43}; 

const uchar RX_ADDRESS2[1]={0x02}; 

const uchar RX_ADDRESS3[1]={0x03};

const uchar RX_ADDRESS4[1]={0x04}; 

const uchar RX_ADDRESS5[1]={0x05};





一下是初始化时对各通道地址的设置





        SPI_W_DBuffer(WRITE_REG+RX_ADDR_P0,(uchar*)RX_ADDRESS0,RX_ADR_WIDTH); //为了接收设备应答信号,接收通道0地址与发送地址相同

                        SPI_R_DBuffer(0x0a,RX_A[0],5);//读取设置地址

                        SPI_W_DBuffer(WRITE_REG+RX_ADDR_P1,(uchar*)RX_ADDRESS1,RX_ADR_WIDTH);//1

                        SPI_R_DBuffer(0x0b,RX_A[1],5);

                        SPI_W_DBuffer(WRITE_REG+RX_ADDR_P2,(uchar*)RX_ADDRESS2,1);//2

                        SPI_R_DBuffer(0x0c,RX_A[2],5);

                        SPI_W_DBuffer(WRITE_REG+RX_ADDR_P3,(uchar*)RX_ADDRESS3,1);//3

                        SPI_R_DBuffer(0x0d,RX_A[3],5);

                              SPI_W_DBuffer(WRITE_REG+RX_ADDR_P4,(uchar*)RX_ADDRESS4,1);//4

                        SPI_R_DBuffer(0x0e,RX_A[4],5);

                        SPI_W_DBuffer(WRITE_REG+RX_ADDR_P5,(uchar*)RX_ADDRESS5,1);//5

                        SPI_R_DBuffer(0x0f,RX_A[5],5);
举报

童霏

2020-4-22 09:45:11
论坛有网友发过多发一收的例程,你可以参考下。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分