NRF24L01多通道通讯

简介: NRF24L01多通道通讯

nRF24L01 是一款工作在 2.4~2.5GHz 世界通用 ISM 频段的单片无线收发器芯片。

NRF24L01 单通道实现通讯很简单,只要收发方地址设置正确,就能正常通讯。

但是 NRF24L01 多通道通信,有很多误区。官网的数据手册描述的也是模糊不清,经过我

不断的调试和收集资料,有了点小成果。

一: NRF24L01 支持多通道收发

对于这个多通道有很多理解,(特别和啊海的理解冲突),

现在实验证明: NRF24L01 只有通道 0 可以发射数据和接收,通道 12345 只能接收数据。

而且通道 2345 的高字节 bit39~8 和地址 1 共用。设置为发送模式时不需要选择通道,因为

硬件默认设置发送模式下为通道 0 发送。

正常通讯的结构是 6 个发射机发数据给 1 个接收机接收。

二: RX --TX 地址设置

一个芯片最多可以设置 6 个接收地址。 所以多对一发送比较简单。 但是想要一对多发送的话

就只能一个一个发送了。 nRF24L01 配置为接收模式时可以接收 6 路不同地址,相同频率

的数据 每个数据通道拥有自己的地址, 并且可以通过寄存器来进行分别配置-。 每一个数据

通道的地址是通过寄存器 RX_ADDR_Px 来配置的,正常通讯情况下不允许不同的数据通

道设置完全相同的地址。

u8 TX_ADDRESS0[TX_ADR_WIDTH]={0x00,0xc2,0xc2,0xc2,0xc2};

//发送地址(地址要和接收通道地址一致)

u8 RX_ADDRESS0[RX_ADR_WIDTH]={0x00,0xc2,0xc2,0xc2,0xc2};

//接收0 通道地址(地址要和发射地址一致)

u8 RX_ADDRESS1[RX_ADR_WIDTH]={0x01,0xc2,0xc2,0xc2,0xc2};//接收1 通道地址

u8 RX_ADDRESS2[RX_ADR_WIDTH]={0x02,0xc2,0xc2,0xc2,0xc2,};//接收2 通道地址

u8 RX_ADDRESS3[RX_ADR_WIDTH]={0x03,0xc2,0xc2,0xc2,0xc2,};//接收3 通道地址

u8 RX_ADDRESS4[RX_ADR_WIDTH]={0x04,0xc2,0xc2,0xc2,0xc2,};//接收4 通道地址

u8 RX_ADDRESS5[RX_ADR_WIDTH]={0x05,0xc2,0xc2,0xc2,0xc2}; //接收5 通道地址

上面地址标记为蓝色的可以可以随便修改, 其他的被固化了, 不能修改, 写地址时是低位先写

要想成功通讯的条件:

1 接收地址和发射地址必须一致

2 无线模块 0x05 寄存器的值必须一致(发射/接收这2 模块)

3 无线模块从 0x00 寄存器往后的(各个 bit 位的功能)去看下手册

三:多个 NRF24L01 组网

正常情况下, NRF24L01 只能一对 6 进行通信, 如果超过 6 个模块进行通信就无法实现。

但是可以通过轮询来区分:

比如一个空间内要实现 100 个温度实时监测,就可以主机用轮询的方式来进行通信,

从机地址都可以设置一样, 通过主机给从机发命令, 让指定从机发送数据回来。 在同一

时间内只能是一个从机和主机进行通信,因为多个节点同时发数据有问题,会造成

24L01 芯片死机(我调试时碰到过)。

在用 STM32F103ZET6 板子调试时,发现 24L01 的几个问题:

1. 作为发送时,和容易出现发送-----但是不判断返回值强行发送却 能发送成功。

2、无论发送与接收,数据传输速率很低,实时性很差,反应很迟钝。

3、无论发送与接收,稳定性很差,模块时而检测到时而检测不到;时而接受到数据

,时而 接收不到数据----不清楚是代码问题还是硬件问题,个人觉得是硬件问题。

目录
相关文章
|
10月前
|
传感器 数据采集 存储
工程监测仪器多通道振弦数据记录仪VD416_DIN 的MODBUS 通讯协议
VD416_DIN 是多通道振弦、温度信号采集记录仪, 具备 32 通道传感器接口, 可对最多16 通道振弦频率和 16 通道温度、 32 通道振弦频率进行实时或全自动定时采集记录(支持内部存储并可外接 U 盘); RS232 和 RS485 数据接口,工业 MODBUS 或自定义 AABB 简单通讯协议可直接接入已有测控系统(如 PLC、无线传输设备等); DIN 导轨设计, 可以安装集成到标准监控箱内; 传感器状态指示灯, 现场调试十分方便。
工程监测仪器多通道振弦数据记录仪VD416_DIN 的MODBUS 通讯协议
|
10月前
|
数据采集 存储 监控
多通道振弦数据记录仪的MODBUS通讯协议
多通道振弦数据记录仪是一种广泛应用于各种机械设备中的高精度数据采集设备。它可以实时采集并记录设备中的多通道振弦数据,通过MODBUS通信协议实现和控制设备的远程访问。
多通道振弦数据记录仪的MODBUS通讯协议
|
7月前
|
存储 开发框架 前端开发
单片机与HC-05蓝牙模块通信
单片机与HC-05蓝牙模块通信
113 0
|
11月前
|
定位技术
激光雷达A1M8与STM32通信
激光雷达A1M8与STM32通信
130 0
|
11月前
|
物联网
zigbee DL-20无线串口收发模块使用(双车通讯,电赛模块推荐)
zigbee DL-20无线串口收发模块使用(双车通讯,电赛模块推荐)
333 0
|
传感器 前端开发 算法
蓝牙、wifi、zigbee和lora、NB-lot,通话信号,网络信号4G
蓝牙、wifi、zigbee和lora、NB-lot,通话信号,网络信号4G
432 3
蓝牙、wifi、zigbee和lora、NB-lot,通话信号,网络信号4G
振弦采集模块的通讯速率和软件握手( UART)
模块开始一次测量时,从 UART 接口主动发送 XOFF 信号( 0x13), 表示模块开始忙于测量数据, 当测量完成时主动发送 XON 信号( 0x11), 表示模块本次测量完成,正处于空闲状态。在开启模块的软件握手功能后, 若需要向模块发送指令,建议 UART 的通讯流程为: 首先等待模块返回 XON 信号( 0x11),当收到 XON 信号或等待超时后立即向模块发送指令。
振弦采集模块的通讯速率和软件握手( UART)
|
传感器 移动开发 索引
振弦采集模块的通讯协议( IIC)
IIC 通讯协议本身即是基于设备地址和寄存器的物理层通讯协议, VMXXX 使用 IIC 接口对传感器的访问,请遵循前述硬件接口时序及协议说明即可。
振弦采集模块的通讯协议( IIC)
ZYNQ-AXI总线通道与总线信号概述
ZYNQ-AXI总线通道与总线信号概述
164 0
ZYNQ-AXI总线通道与总线信号概述