nrf24l01实现多通道通信的步骤 |
您所在的位置:网站首页 › 多信道接收机和单路接收机哪个好 › nrf24l01实现多通道通信的步骤 |
一、收发端共同的设置
设置信道工作频率(发射端和接收端必须一致)
如:SPI_RW_Reg(WRITE_REG+RF_CH,40); 设置发射速率(2mbps或1mbps)和发射功率(收发必须一致);如:SPI_RW_Reg(WRITE_REG+RF_SETUP,0x0f); //发射速率为2Mbps,发射功率 最大为0dB 二、接收端的设置(最关键) 设置频道0-5,自动ACK应答允许如: SPI_RW_Reg(WRITE_REG+EN_AA,0x3f); 设置接收通道全部允许如: SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x3f);
3、向发送地址寄存器写入本地地址(5byte) 4、向各个频道的接收地址寄存器写入接收地址(调试成不成功的关键) 频道0:5个字节的地址 频道1:5个字节的地址(和频道0的地址必须不同) 频道2:1个字节的地址(为该通道发射机地址的第一个字节) 如:有一个配置为发射模式的24l01要通过该通道与接收机通信,发射机的本地地 址为{0x37,0xa1,0xb3,0xc9,0xda};则接收机频道2的地址为(0x37) 频道3:1个字节的地址(同上) 频道4:1个字节的地址(同上) 频道5:1个字节的地址(同上) 向各个频道接收数据长度寄存器写入接收数据宽度(最快均为32)频道n:SPI_RW_Reg(WRITE_REG + RX_PW_Pn, RX_PLOAD_WIDTH); 如: 频道5:SPI_RW_Reg(WRITE_REG + RX_PW_P5, RX_PLOAD_WIDTH); 配置为接收模式如:SPI_RW_Reg(WRITE_REG+CONFIG,0x0f); 发射端的设置 向发送地址寄存器写入本地地址(5byte) 对发给接收机频道0的发射机:发射机本地地址必须和接收机写入该频道的接收地址一致; 对发给接收机频道1的发射机:发射机本地地址必须和接收机写入该频道的接收地址一致;对发给接收机频道2的发射机: 发射机本地地址的第1个字节必须和接收机写入该频道的接收地址一致;后4个字 节必须和接收机写入频道1的接收地址的后4个字节一致; 其他频道类同频道2; 如: 接收机地址如下: uchar RX_ADDRESS0[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x00}; //频道0接收地址 uchar RX_ADDRESS1[RX_ADR_WIDTH]={0x35,0xa1,0xb3,0xc9,0xda}; //频道1接收地址
uchar RX_ADDRESS2[1]={0x36}; //频道2接收地址 uchar RX_ADDRESS3[1]={0x37}; //频道3接收地址 uchar RX_ADDRESS4[1]={0x38}; //频道4接收地址 uchar RX_ADDRESS5[1]={0x39}; //频道5接收地址 对发给接收机频道0的发射机: uchar TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x00}; //本地地址 对发给接收机频道1的发射机: uchar TX_ADDRESS[TX_ADR_WIDTH]= {0x35,0xa1,0xb3,0xc9,0xda}; //本地地址 对发给接收机频道2的发射机: uchar TX_ADDRESS[TX_ADR_WIDTH]= {0x36,0xa1,0xb3,0xc9,0xda}; //本地地址 对发给接收机频道3的发射机: uchar TX_ADDRESS[TX_ADR_WIDTH]= {0x37,0xa1,0xb3,0xc9,0xda}; //本地地址 .............2、向接收地址寄存器写入接收地址(5byte) 均写接收机的本地地址 设置为发送模式如:SPI_RW_Reg(WRITE_REG+CONFIG,0x0e); 4、设置自动重发(可有可无) 如:SPI_RW_Reg(WRITE_REG+SETUP_RETR ,0x3f); //自动重发15次,等待最长 时间
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |