Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >NRF24L01多通道通讯

NRF24L01多通道通讯

作者头像
DS小龙哥
发布于 2022-01-07 05:49:43
发布于 2022-01-07 05:49:43
7450
举报

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、无论发送与接收,稳定性很差,模块时而检测到时而检测不到;时而接受到数据 ,时而 接收不到数据----不清楚是代码问题还是硬件问题,个人觉得是硬件问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015/02/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
(38)STM32——NRF24L01无线通信
        在Enhanced ShockBurstTM收发模式下,NRF24L01 自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去。在发送数据时,自动加上字头和CRC校验码,在发送模式下,置CE为高,至少10us, 将使能发送过程。
小点点
2022/12/12
1.3K0
(38)STM32——NRF24L01无线通信
51单片机对无线模块nRF24L01简单的控制收发程序
这段代码主要先看全局变量,通过对IO口的赋值(如按键、led、无线模块的端口CE/IRQ等)可以知道电路图的绘制。
啊源股
2019/09/11
2.5K0
详解nRF24L01无线收发模块设计(附完整源码)
*******************************************
飞哥
2020/07/10
9.7K0
详解nRF24L01无线收发模块设计(附完整源码)
多协议模块-Bayang协议(NRF24L01芯片)
这个东西,是个芯片,在飞控里面 https://datasheet.lcsc.com/szlcsc/XN297L_C88025.pdf
云深无际
2021/11/15
1.9K0
多协议模块-Bayang协议(NRF24L01芯片)
基于nRF24L01的一对多节点通信(一收多发)
Jack_Cui
2017/12/28
1.5K0
被低估的NRF240L1模块,伪双工下的双向通信?
对很多单片机初学者或者爱好者来说,NRF24L01这个模块应该是比较熟悉了。如果你看过我的51视频就知道,我还在里面粗略的讲过,分享了两个简单的收发程序。
MCU起航
2021/09/24
1.4K0
一次小模块的使用过程-LC12S无线模块介绍
最近帮人做了个小设备,使用了无线模块、触摸芯片,主要功能就是把触摸按键的信号无线传到控制继电器输出,MCU是STM8系列的芯片,其中使用过程中调试无线模块LC21S觉得挺好用的,就写了这篇文章。
良知犹存
2021/02/06
5200
一次小模块的使用过程-LC12S无线模块介绍
工程监测多通道振弦模拟信号采集仪VTN的AABB 通讯协议
AABB 通讯协议是一种非标准自定义协议, 相较于 MODBUS 通讯协议,结构更简单,指令生成方法更容易,便于进行快速测试。 AABB 通讯协议支持单寄存器读写两种指令。
河北稳控科技
2023/02/20
2970
工程监测多通道振弦模拟信号采集仪VTN的AABB 通讯协议
关于G-MAXTEX GS881的接收机
比较nrf24l01的数据手册和BK2423数据手册很多内容(包括寄存器库)完全相同,不同的大概是nrf24l01的datasheet更详细。所以,以下内容通用。都是使用的SPI接口 datasheet里的“channel”:信道,信息的通道。当然,实际上芯片是向四面八方发射电磁波的。
云深无际
2022/02/09
1.3K0
关于G-MAXTEX GS881的接收机
自制SBUS接收端代码分析.上
看这篇文章前先看下面这篇 自制S-Bus接收器(控制dji EP车) 我们继续看这个,这个是发射端的数结构包 使用这段代码发送出去 接收端的代码,多了一个舵机的库 int ch_width_1 = 0, ch_width_2 = 0, ch_width_3 = 0, ch_width_4 = 0, ch_width_5 = 0, ch_width_6 = 0; 这里使用int的类型,声明几个通道 Servo ch1; Servo ch2; Servo ch3; Servo ch4; Ser
云深无际
2021/09/14
9120
自制SBUS接收端代码分析.上
无线键鼠的监听、劫持与防护
键盘连接到计算机有多种方式,有线键盘鼠标在生活中最常见,适用范围也很广泛,但有线连接不仅对操作距离有限制,而且给携带造成了不便。不仅如此,繁杂的线缆还很容易把桌面弄得凌乱不堪。无线键鼠非常好地解决了上述问题。无线键鼠又分为蓝牙类型和2.4GHz 类型,文中所指的无线鼠标一般指2.4GHz 类型。值得注意的是,虽然蓝牙键鼠的工作频段也是2.4GHz 频段,使用的却是蓝牙通信协议,符合蓝牙标准。而2.4GHz 类型的键鼠主要指利用专属无线协议开发的无线产品。2.4GHz 类型的无线键鼠,一般在计算机的USB 接口处插上一个适配器,鼠标和键盘通过电池供电。
博文视点Broadview
2020/06/11
1.9K0
工程监测多通道振弦模拟信号采集仪VTN的MODBUS 通讯协议
在 MODBUS 协议下,所有寄存器被定义为“保持寄存器” (详见 MODBUS 通讯协议标准说明), 设备支持基于 MODBUS 协议的多个连续寄存器读取、单个寄存器写入两种指令码, 对应指令码分别为 0x03、 0x06。
河北稳控科技
2023/02/17
4390
工程监测多通道振弦模拟信号采集仪VTN的MODBUS 通讯协议
电容触摸屏GT911、GT928、GT9147的使用
GT911、GT928、GT9147都属于GT9系列非单层多点触控芯片,他们支持的触控点数不同(GT928支持10个点、GT911支持5个点)、驱动和感应通道也可能不同。可是他们的寄存器和IIC通讯时序是相同的,也就是说驱动程序是兼容的。
全栈程序员站长
2022/09/07
5.8K0
基于STM32的RC522模块读写数据块以及电子钱包充值扣款系统的设计
本人也是正在学习单片机知识的萌新一枚,在这里记录下自己完成这个小设计的过程跟大家分享一下,也请大家指出我哪里还有不足可以改进的地方。秉着和大家一起学习进步发布了这篇文章
全栈程序员站长
2022/10/02
2.5K2
基于STM32的RC522模块读写数据块以及电子钱包充值扣款系统的设计
STM32+MFRC522完成IC卡号读取、密码修改、数据读写
完整工程源码下载: https://download.csdn.net/download/xiaolong1126626497/18905806
DS小龙哥
2022/01/17
4K0
STM32+MFRC522完成IC卡号读取、密码修改、数据读写
工程监测多通道振弦模拟信号采集仪VTN的$字符串通讯协议
VTN208-432是多通道振弦、温度、模拟传感信号系列数据采集仪,可对32通道振弦频率、32通道热敏电阻或DS18B20温度传感器、32通道模拟量传感器(电流或电压)进行实时在线采集或全自动定时采集存储工作;预留一路可调电源输出为模拟传感器定时供电;程控多路DAC输出,可以用于将振弦频率信号实时转换为模拟信号输出。设备支持RS485数据接口(支持Modbus或自定义AABB简单通讯协议)可以直接接入测控系统(如PLC、无线数据传输设备等)。
河北稳控科技
2023/02/21
3100
工程监测多通道振弦模拟信号采集仪VTN的$字符串通讯协议
AS608指纹模块
AS608 指纹识别模块主要是指采用了杭州晟元芯片技术有限公司(Synochip)的 AS608 指纹识别芯片 而做成的指纹模块,模块厂商只是基于该芯片设计外围电路,集成一个可供2次开发的指纹模块;所以,只要是基于AS608芯片的指纹模块,其控制电路及控制协议几乎是一样的,只是厂家和性能不同而已。
跋扈洋
2021/02/02
2K0
AS608指纹模块
RC522(RFID模块)实践总结
此次使用RC522模块和S50卡实现近场通讯功能(开发板与RC522通讯方式为硬件SPI),就实践过程中的一些知识点进行总结:
全栈程序员站长
2022/07/22
3K0
RC522(RFID模块)实践总结
Linux驱动开发-编写RFID-RC522射频刷卡模块驱动
MFRC522是应用于13.56MHz非接触式通信中高集成度的读写卡芯片,针对“三表”应用推出的一款低电压、低成本、体积小的非接触式读写卡芯片,是智能仪表和便携式手持设备研发的较好选择。便携式手持设备研发的较好选择。MFRC522利用了先进的调制和解调概念,集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。支持14443A兼容应答器信号。数字部分处理ISO14443A帧和错误检测。此外,还支持快速CRYPTO1加密算法,用语验证MIFARE系列产品。MFRC522支持MI FARE系列更高速的非接触式通信,双向数据传输速率高达424kbit/s。作为13.56MHz高集成度读写卡系列芯片族的新成员,MFRC522与MF RC500和MFRC530有不少相似之处,同时也具备许多特点和差异。它与主机间通信采用SPI模式,有利于减少连线,缩小PCB板体积,降低成本。
DS小龙哥
2022/04/08
2.8K0
Linux驱动开发-编写RFID-RC522射频刷卡模块驱动
MAX31865模块的使用-基于ZigBee_CC2530芯片 PT100测温
  网络上关于ZigBee和MAX31865的相关资料较少,对于如何在CC2530上实现对PT100温度数据的读取的资料更是几乎没有。因此本文对MAX31865芯片和模块的使用进行简要介绍,并提供使用源码,同时提供自制模块的相关原理图。
全栈程序员站长
2022/09/07
1.4K0
推荐阅读
相关推荐
(38)STM32——NRF24L01无线通信
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档