收藏 分销(赏)

nRF24L01实现多通道通信的设置.docx

上传人:pc****0 文档编号:6768080 上传时间:2024-12-21 格式:DOCX 页数:5 大小:14.63KB 下载积分:10 金币
下载 相关 举报
nRF24L01实现多通道通信的设置.docx_第1页
第1页 / 共5页
nRF24L01实现多通道通信的设置.docx_第2页
第2页 / 共5页


点击查看更多>>
资源描述
nRF24L01实现多通道通信的设置 一、收发端共同的设置  1、设置信道工作频率(发射端和接收端必须一致)  如:SPI_RW_Reg(WRITE_REG+RF_CH,40);  2、设置发射速率(2Mbps或1Mbps)和发射功率(收发必须一致);  如:SPI_RW_Reg(WRITE_REG+RF_SETUP,0x0f);  //发射速率为2Mbps,发射功率 最大为0dB  二、接收端的设置(最关键)  1、设置频道0-5,自动ACK应答允许  如:SPI_RW_Reg(WRITE_REG+EN_AA,0x3f);  2、设置接收通道全部允许  如:SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x3f);   3、向发送地址寄存器写入本地地址(5 byte)  4、向各个频道的接收地址寄存器写入接收地址(调试成不成功的关键)  频道0:5个字节的地址  频道1:5个字节的地址(和频道0的地址必须不同)  频道2:1个字节的地址(为该通道发射机地址的第一个字节)  如:有一个配置为发射模式的nRF24L01要通过该通道与接收机通信,发射机的本地地址为{0x37,0xa1,0xb3,0xc9,0xda};则接收机频道2的地址为(0x37) 频道3:1个字节的地址(同上) 频道4:1个字节的地址(同上) 频道5:1个字节的地址(同上)  5、向各个频道接收数据长度寄存器写入接收数据宽度(最快均为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);  6、配置为接收模式  如:SPI_RW_Reg(WRITE_REG+CONFIG,0x0f);   三、发射端的设置  1、向发送地址寄存器写入本地地址(5 byte)  对发给接收机频道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、向接收地址寄存器写入接收地址(5 byte) 均写接收机的本地地址  3、设置为发送模式  如:SPI_RW_Reg(WRITE_REG+CONFIG,0x0e);   4、设置自动重发(可有可无)  如:SPI_RW_Reg(WRITE_REG+SETUP_RETR ,0x3f);  //自动重发15次,等待最长时间 如果一块设置为发送模式的nRF24L01与两块设为接收模式的nRF24L01通信,发送机的TX_ADDRESS[TX_ADR_WIDTH]数组和RX_ADDRESS[RX_ADR_WIDTH]数组的内容可以如下定义: uchar  TX_ADDRESS[TX_ADR_WIDTH] = {0x01,0x02,0x03,0x04,0x00}; //本地地址 uchar  RX_ADDRESS[RX_ADR_WIDTH]= {0x00,0x00,0x00,0x00,0x00}; //接收地址 在uchar send(uchar Slave_NO,uchar *TxBuf)函数里的第一条语句:TX_ADDRESS[4]= Slave_NO; 如果Slave_NO=0,那么从机的发送地址和接收地址设置情况为(从机1) uchar  TX_ADDRESS[TX_ADR_WIDTH]= {0x01,0x02,0x03,0x04,0x00}; //本地地址 uchar  RX_ADDRESS[RX_ADR_WIDTH]= {0x01,0x02,0x03,0x04,0x00}; //接收地址 如果Slave_NO=1,那么从机的发送地址和接收地址设置情况为(从机2) uchar  TX_ADDRESS[TX_ADR_WIDTH]= {0x01,0x02,0x03,0x04,0x01}; //本地地址(主要是最后一项的0x01必须设置好) uchar  RX_ADDRESS[RX_ADR_WIDTH]= {0x01,0x02,0x03,0x04,0x01}; //接收地址(第四个0x01可以是0x00)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服