nrf24l01

时间:2024-07-02 12:44:49编辑:流行君

nrf24l01传输距离好短,怎么回事?求解答

nrf24l01没有附加的天线可以获得增益,传输距离短的正常的。nRF24L01是一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA。接收时,工作电流只有12.3mA,多种低功率工作模式,工作在100mw时电流为160mA。扩展资料:nRF24L01对电压要求较高,供电的电压要足够稳定,所以供电的电源经过两次稳压。nRF24L01无线模块的理想工作电压是3.3伏,其中的一次稳压还要对电压进行转换以满足无线模块的工作电压。给该模块供电的电压采用7.5v,经LM7805稳压模块,电压转为稳定的5伏电压,5伏电压经AMS1117稳压模块,电压转为无线模块需要的3.3伏。参考资料:百度百科-nrf24l01

nrf24l01传输距离好短,怎么回事?求解答

nrf24l01没有附加的天线可以获得增益,传输距离短的正常的。nRF24L01是一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA。接收时,工作电流只有12.3mA,多种低功率工作模式,工作在100mw时电流为160mA。扩展资料:nRF24L01对电压要求较高,供电的电压要足够稳定,所以供电的电源经过两次稳压。nRF24L01无线模块的理想工作电压是3.3伏,其中的一次稳压还要对电压进行转换以满足无线模块的工作电压。给该模块供电的电压采用7.5v,经LM7805稳压模块,电压转为稳定的5伏电压,5伏电压经AMS1117稳压模块,电压转为无线模块需要的3.3伏。参考资料:百度百科-nrf24l01

nrf24l01是蓝牙还是wifi

求大神指点一下nrf24l01属于那种传输技术的芯片?红外?蓝牙?zigbee?NRF24L01,它是射频RFID技术,射频识别技术( RFID, 即Radio Frequency Identification) 是一种通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或者光学接触的数据通信。第nrf24l01+,是nrf24l01的升级版本。 第nrf24l01+相对nrf24l01芯片的优势: (1)支持250k,1m,2m三种传输速率,数据量小则可选择250k速率,传输距离更远。 (2)支持更多种功率配置,能根据不同应用有效节省功耗。nrf24l01:功耗低,在以-6 dbm的功率发射时,工作电流也只有9 ma;接收时,工作电流只有13 ma,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。...或搜救机器人采用什么通信硬件和技术。是不是像NRF24L01和...1、在硬件方面,选择了低功耗、高性能的ATmega16L单片机为主控芯片,结合CC1100无线通信模块,完成两级机器人的双向数据传输,PC与单片机之间通过RS232进行数据传输,单片机通过SPI总线控制CC1100进行数据收发。2、智能跟随系统采用微型天线整列和无线通信技术。3、机器人搜救问题可以近似的看成迷宫求解问题,故机器人采用一种基于右手法则来实现向心搜索迷宫算法。算法中采用(X,Y,Z)的三维模型,其中X、Y表示坐标,Z表示机器人在该坐标时行进的方向。4、下面以网络搜索机器人为例来说明搜索引擎技术。搜索引擎优化,通俗理解是:通过总结搜索引擎的排名规律,对网站进行合理优化,使你的网站在百度和Google的排名提高,让搜索引擎给你带来客户。5、机器人(Robot)是自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则纲领行动。它的任务是协助或取代人类工作的工作,例如生产业、建筑业,或是危险的工作。Zigbee无线通信跟基于nRF24l01模块的无线通信有什么区别ZigBee和433无线自组网模块本质区别就是工作频段和通信机制。一般ZigBee采用国际zigbee联盟规定标准协议,采用4G频段进行传输和组网。距离不理想、干扰源多,一般主要应用于智能家具和近距离组网应用。目的是改善基于IEEE 8011标准的无线网路产品之间的互通性。穿墙、通信距离,通信速率等等都有不同。比如说,zigbee的cc2530最大通信速率是250k吧,但是nrf24l01就可以有三种,分别是2m,1m和250k。楼主要彻底弄清楚的话,还是要自己每一个去查的。ZigBee模块是属于4GHZ里面的一个技术频段,在4G频段下还有Wi-Fi跟蓝牙。

nRF24L01接收地址怎么修改?

我用接收通道0,地址我随便改的5个数据,一样能照常接收,只要发送和接收地址匹配就行。原理图电路原理nRF24L01原理图引脚定义nRF24L01引脚定义接线图nRF24L01与5V单片机的连接(只适用于高阻口)兼容性nRF24L01 可以兼容nRF2401A、nRF24L01+、nRF24LE1、nRF24LU1等无线模块。nRF24L01+nRF24L01+(或称nRF24L01P)是nRF24L01的低功耗优化版,同时增加了250Kbps通讯速率的支持。nRF24L01与nRF24L01+之间可互用代码(除极少部分需要修改外)和互相通讯。nRF2401AnRF2401A与nRF24L01和nRF24L01+之间可完成相互通讯,前提是它们之间必须工作在相同的工作模式下。比如工作频率、传输速率、地址、数据包长度和CRC校验方式。nRF24LE1nRF24LE1、nRF24LU1也可以同nRF24L01之间完成通讯。通讯建立条件同nRF2401A。

nrf24l01接收如何使用

NRF24L01寄存器如何设置
主模式控制下的寄存器的操作设置

器件利用两个引脚进行数据传送:
? 串行时钟(SCL)——RC3/SCK/SCL
? 串行数据(SDA)——RC4/SDI/SDA
用户可以通过设置TRISC位将这两个引脚设为输
入或输出。
MSSP模块有六个寄存器用于I2C 操作,它们是:
? MSSP控制寄存器 (SSPCON)
? MSSP控制寄存器 2(SSPCON2)
? MSSP状态寄存器 (SSPSTAT)
? 串行接收/发送缓冲器 (SSPBUF)
? MSSP 移位寄存器 (SSPSR)—不可直接访问
? MSSP 地址寄存器 (SSPADD)
SSPCON、SSPCON2 和SSPSTAT是 I2C 操作的控制
和状态寄存器。 SSPCON和SSPCON2寄存器可读写。
SSPSTAT 的低6 位为只读,高2 位可读写。
SSPSR 是用于将数据移入或移出的移位寄存器。
SSPBUF 是缓冲寄存器, 数据字节写入或从该寄存器中
读取。
当 SSP 被设置为 I2C 从模式时,SSPADD 寄存器用于
保存从机地址。当 SSP 被设置为主模式时, SSPADD
的低7 位作为波特率发生器的重装值。
接收时,SSPSR和 SSPBUF共同构成一个双缓冲接收
器。当 SSPSR 接收到一个完整字节时,该字节就被移
入SSPBUF,同时 SSPIF中断被置 1。
发送时,SSPBUF无双缓冲。写 SSPBUF 等同于同时
写SSPBUF和SSPSR。


寄存器 10-3: SSPSTAT:MSSP 状态(I
2C 模式)寄存器(地址为 94h)
R/W-0 R/W-0 R-0 R-0 R-0 R-0 R-0 R-0
SMP CKE D/A PSR/W UA BF
bit 7 bit 0
bit 7 SMP: 转换率控制位
主、从模式下:
1 = 关闭转换率控制,标准速度方式(100 kHz 和 1 MHz)
0 = 使能转换率控制,高速方式 (400 kHz)
bit 6 CKE: SMBus 选择位
主、从模式下:
1 = 使能 SMBus专用输入
0 = 禁止 SMBus专用输入
bit 5 D/A: 数据/地址位
主模式下:
保留。
从模式下:
1 = 表示最后接收或发送的字节是数据
0 = 表示最后接收或发送的字节是地址
bit 4 P: 停止位
1 = 表示最后检测到停止位
0 = 表示最后未检测到停止位
注: 复位及SSPEN 被清零时该位被清零。
bit 3 S: 起始位
1 = 表示最后检测到起始位
0 = 表示最后未检测到起始位
注: 复位及SSPEN 被清零时该位被清零。
bit 2 R/W: 读/ 写位信息 (仅限I2C模式)
从模式下:
1 = 读
0 = 写
注: 在前一次地址匹配时该位保存读 / 写位信息。该位仅在地址匹配至下一个开始位、
停止位或非 ACK时有效。
主模式下:
1 = 正在进行发送;
0 = 不在进行发送。
注: 该位与SEN、RSEN、PEN、RCEN 或ACKEN 位进行逻辑或操作时将表明MSSP
是否处于空闲状态。
bit 1 UA: 地址更新位(仅限10 位从模式)
1 = 表示用户需要更新 SSPADD 寄存器中的地址
0 = 表示不需要更新地址
bit 0 BF: 缓冲器满状态位
接收时:
1 = 表示接收完成, SSPBUF 已满
0 = 表示接收未完成, SSPBUF 空
发送时:
1 = 数据发送正在进行(不包括 ACK 位和停止位) , SSPBUF 满
0 = 数据发送已完成 (不包括 ACK 位和停止位),SSPBUF 空
图注:
R = 可读位 W = 可写位 U = 未使用,读作 0
- n = 上电复位值 “1” = 该位被置 1 “0” = 该位被清零 x = 未知状态

寄存器 10-4: SSPCON:MSSP控制 (I
2C 模式)寄存器 1 (地址为 14h)
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0
bit 7 bit 0
bit 7 WCOL: 写冲突检测位
主发送模式下:
1 = 不具备开始发送的I
2C 条件时试图向 SSPBUF 寄存器写入数据 (必须用软件清零) 。
0 = 未发生冲突
从发送模式下:
1 = 正在发送前一个数据时又有数据写入 SSPBUF 寄存器(必须用软件清零)。
0 = 未发生冲突
接收时 (主、从模式) :
该位是 “无关”位。
bit 6 SSPOV: 接收溢出指示位
接收时:
1 = SSPBUF 寄存器中仍然保持前一个数据时又收到新的字节 (必须用软件清零) 。
0 = 未发生溢出
发送时:
该位是 “无关”位。
bit 5 SSPEN: 同步串行口使能位
1 = 使能串行口操作,并设定 SDA 和 SCL 为串行口引脚
0 = 关闭串行口操作,并设定这些引脚为 I/O 引脚
注: 使能时,SDA和SCL引脚必须正确设定为输入或输出。
bit 4 CKP: SCK 释放控制位
从模式下:
1 = 释放时钟
0 = 保持时钟为低电平(时钟扩展)。 (用于确保数据建立时间)。
主模式下:
该模式下未使用。
bit 3-0 SSPM3:SSPM0: 同步串行口模式选择位
1111 = I
2C 从模式, 10 位地址且启动位和停止位中断使能
1110 = I
2C 从模式, 7 位地址且启动位和停止位中断使能
1011 = I
2C 固件控制为主模式 (从模式空闲)
1000 = I
2C 主模式,时钟 = FOSC/(4 * (SSPADD + 1))
0111 = I
2C 从模式, 10 位地址
0110 = I
2C 从模式, 7 位地址
注: 其他的位组合方式保留未用或仅用于SPI 方式。
图注:
R = 可读位 W = 可写位 U = 未使用,读作 0
- n = 上电复位值 “1” = 该位被置 1 “0” = 该位被清零 x = 不确定

寄存器 10-5: SSPCON2:MSSP 控制(I
2C 模式)寄存器 2 (地址为 91h)
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN
bit 7 bit 0
bit 7 GCEN: 广播呼叫使能位 (仅限从模式)
1 = 收到来自 SSPSR的广播呼叫地址时(0000h)使能中断
0 = 禁止广播呼叫地址
bit 6 ACKSTAT: 应答状态位 (仅限主模式)
1 = 未收到从机的应答
0 = 收到从机的应答
bit 5 ACKDT: 应答数据位 (仅限主模式)
1 = 未应答
0 = 已应答
注: 当用户在接收之后启动应答时序时将要发送的值。
bit 4 ACKEN: 应答顺序使能位 (仅限主模式)
1 = 在SDA 和 SCL 引脚上启动应答顺序,并发送 ACKDT 数据位。
由硬件自动清零。
0 = 应答顺序空闲
bit 3 RCEN: 接收使能位 (仅限主模式)
1 = 使能 I
2C 接收模式
0 = 接收空闲
bit 2 PEN: 停止条件使能位 (仅限主模式)
1 = 在 SDA 和 SCL 引脚上启动停止条件,由硬件自动清零
0 = 停止条件空闲
bit 1 RSEN: 重复起始条件使能位 (仅限主模式)
1 = 在SDA 和 SCL 引脚上启动重复起始条件,由硬件自动清零
0 = 重复起始条件空闲
bit 0 SEN: 起始条件使能/ 扩展使能位
主模式下:
1 =在 SDA 和 SCL 引脚上启动起始条件,由硬件自动清零
0 = 起始条件空闲
从模式下:
1 = 在从动发送和从动接收时均使能时钟扩展(扩展使能)
0 = 只在从动发送时使能时钟扩展(与 PIC16F87X 兼容)
注: 对于 ACKEN、 RCEN、PEN、 RSEN 和 SEN 等位,如果 I
2C 模块不处于空闲状
态,该位可能不置 1 (无假脱机技术),且 SSPBUF 寄存器可能不写入(或写入
SSPBUF 被禁止)。
图注:
R = 可读位 W = 可写位 U = 未使用,读作0
- n = 上电复位值 “1”= 该位被置 1 “0” = 该位被清零 x = 不确定

10.4.6 主模式
通过对SSPCON寄存器中的各相应SSPM位置1和清
零并对 SSPEN置 1可以使能主模式。主模式下,SCL
和 SDA信号线由 MSSP硬件控制。
主操作模式是通过检测起始(START)和停止(STOP)
条件产生中断来工作的。起始标志位(P)和停止标志
位(S)在复位或关闭MSSP模块时被清零。当P位被
置1后可得到I
2C总线的控制权;否则当P位和S位都
清零时,总线空闲。
在固件控制下的主模式中,用户程序基于启动位和停止
位的状态完成 I
2C 总线的操作。
主模式使能后,用户有以下 6 种选择:
1. 在 SDA和 SCL 上发送起始条件;
2. 在 SDA和 SCL 上发送重复起始条件;
3. 写 SSPBUF寄存器,启动数据/地址的传送;
4. 设置 I
2C 端口以接收数据;
5. 数据字节接收完毕后,发出应答信号;
6. 在 SDA和 SCL 上发送停止条件。

以下几种情况会引起SSP中断标志位SSPIF置1, (如
果中断允许则产生SSP 中断) :
? 起始条件
? 停止条件
? 发送/接收的传输字节
? 发送应答信号
? 重复启动状态
注: 当 MSSP 模块设置为 I
2C 主模式时,不允
许事件列队。例如:不允许用户启动起始条
件,并在起始条件完成之前立即向
SSPBUF 寄存器写数据以启动数据的发
送。在这种情况下,不能向 SSPBUF 寄存
器写数据,且写冲突检测标志位 WCOL 被
置1,表明未发生数据写入 SSPBUF。
10.4.6.1 I
2C 主模式的操作
主机产生所有的串行时钟脉冲和启动 / 停止信号。当停
止信号或重复启动信号到来时中止传送。由于重复启动
信号也是下一个串行传送的开始,因此 I
2C 总线不会被
释放。
在主发送器模式下, 串行数据通过SDA线输出, 而SCL
输出串行时钟。 发送的首字节包括接收器件的从机地址
(7 位)和读 / 写位 (R/W)。此时 R/W 位将为逻辑
“0” 。串行数据每次发送 8 位。在发送完每个字节后,
接收到一个应答位。输出起始和停止条件分别表示串行
传输的开始和结束。
在主接收模式下,发送的首字节包括发送器件的从机地
址(7 位)和读 / 写位。这时 R/W 将为逻辑“1”。这
样,发送的首字节是一个 7 位的从地址,并紧跟一个
“1”以表明是一个接收位。串行数据通过 SDA 接收,
而 SCL 输出串行时钟。串行数据每次接收 8 位。每个
字节接收之后都发送一个应答位。起始和停止条件分别
表明传输的开始和结束。
原来用于 SPI模式下的波特率发生器,在I
2C模式下用
来设置SCL时钟频率, 可分别设置为100 kHz、 400 kHz
或 1MHz。详见第10.4.7 节 “波特率发生器 ” 。

典型发送顺序如下:
1. 用户通过将起始使能位 SEN(SSPCON2)
置1 进入启动状态;
2. SSPIF置1,在进行其他操作前,SSP 模块将等
待所需的启动时间;
3. 将从机地址装入SSPBUF 进行传送;
4. 地址从SDA 脚移出,直到所有的 8 位被发送;
5. MSSP 模块将从机的 ACK 逐位移入,并将它的
值送入SSPCON2(SSPCON2)
6. MSSP模块在第9个时钟周期的末尾将 SSPIF 置
1,产生一个中断;
7. 用户将8 位数据装入SSPBUF;
8. 数据从SDA 引脚移出, 直到所有8位发送完毕;
9. MSSP 模块将从机的 ACK 位移入,并将它的值
写入SSPCON2寄存器 (SSPCON2);
10. MSSP 模块在第9个时钟周期的末尾将 SSPIF 置
1,产生一个中断;
11. 用户通过将停止使能位 PEN(SSPCON2)
置1 来产生停止条件;
12. 一旦停止条件完成,即产生一个中断。
10.4.7 波特率发生器
在 I
2C 主模式下,波特率发生器 BRG 的重装值被置于
SSPADD 寄存器的低7 位(图 10-17)。当对 SSPBUF
进行写操作时,波特率发生器自动开始计数。 BRG 递
减计数至 0,然后停止,等待再次装入。BRG计数值在
每个指令周期(TCY)共递减两次,分别发生在第二个
时钟周期 Q2和第四个时钟周期 Q4。在I
2C 主模式下,
BRG自动重装。
一旦给定的操作完成(例如,发送完最后一个数据位后
收到 ACK),内部时钟将自动停止计数,SCL 引脚保
持前一个状态不变。
表 10-3显示不同指令周期的时钟速率以及装入SSPADD
的BRG值。


软件和硬件的区别?

硬件和软件的区别:一、软件是一种逻辑的产品,与硬件产品有本质的区别硬件是看得见、摸得着的物理部件或设备。在研制硬件产品时,人的创造性活动表现在把原材料转变成有形的物理产品。而软件产品是以程序和文档的形式存在,通过在计算机上运行来体现他的作用。在研制软件产品的过程中,人们的生产活动表现在要创造性地抽象出问题的求解模型,然后根据求解模型写出程序,最后经过调试、运行程序得到求解问题的结果。整个生产、开发过程是在无形化方式下完成的,其能见度极差,这给软件开发、生产过程的管理带来了极大的困难。二、软件产品质量的体现方式与硬件产品不同质量体现方式不同表现在两个方面。硬件产品设计定型后可以批量生产,产品质量通过质量检测体系可以得到保障。但是生产、加工过程一旦失误。硬件产品可能就会因为质量问题而报废。而软件产品不能用传统意义上的制造进行生产,就目前软件开发技术而言,软件生产还是“定制”的,只能针对特定问题进行设计或实现。但是软件爱你产品一旦实现后,其生产过程只是复制而已,而复制生产出来的软件质量是相同的。设计出来的软件即使出现质量问题,产品也不会报废,通过修改、测试,还可以将“报废”的软件“修复”,投入正常运行。可见软件的质量保证机制比硬件具有更大的灵活性。三、软件产品的成本构成与硬件产品不同硬件产品的成本构成中有形的物质占了相当大的比重。就硬件产品生存周期而言,成本构成中设计、生产环节占绝大部分,而售后服务只占少部分。软件生产主要靠脑力劳动。软件产品的成本构成中人力资源占了相当大的比重。软件产品的生产成本主要在开发和研制。研制成功后,产品生产就简单了,通过复制就能批量生产。四、软件产品的失败曲线与硬件产品不同硬件产品存在老化和折旧问题。当一个硬件部件磨损时可以用一个新部件去替换他。硬件会因为主要部件的磨损而最终被淘汰。对于软件而言,不存在折旧和磨损问题,如果需要的话可以永远使用下去。但是软件故障的排除要比硬件故障的排除复杂得多。软件故障主要是因为软件设计或编码的错误所致,必须重新设计和编码才能解决问题。软件在其开发初始阶段在很高的失败率,这主要是由于需求分析不切合实际或设计错误等引起的。当开发过程中的错误被纠正后,其失败率便下降到一定水平并保持相对稳定,直到该软件被废弃不用。在软件进行大的改动时,也会导致失败率急剧上升。五、大多数软件仍然是定制产生的硬件产品一旦设计定型,其生产技术、加工工艺和流程管理也就确定下来,这样便于实现硬件产品的标准化、系列化成批生产。由于硬件产品具有标准的框架和接口,不论哪个厂家的产品,用户买来都可以集成、组装和替换使用。尽管软件产品复用是软件界孜孜不倦追求的目标,在某些局部范围内几家领军软件企业也建立了一些软件组件复用的技术标准。例如,OMG的CORBA,mICROSOFT的COM,sun的J2EE等,但是目前还做不到大范围使用软件替代品。大多数软件任然是为特定任务或用户定制的。扩展资料:硬件:计算机的硬件是计算机系统中各种设备的总称。计算机的硬件应包括5个基本部分,即运算器、控制器、存储器、输入设备、输出设备,上述各基本部件的功能各异。运算器应能进行加、减、乘、除等基本运算。存储器不仅能存放数据,而且也能存放指令,计算机应能区分是数据还是指令。控制器应能自动执行指令。操作人员可以通过输人、输出设备与主机进行通信。计算机内部采用二进制来表示指令和数据。操作人员将编好的程序和原始数据送人主存储器中,然后启动计算机工作,计算机应在不需干预的情况下启动完成逐条取出指令和执行指令的任务。软件:电脑的外观、主机内的元件都是看得见的东西,一般称它们为电脑的「硬件」,那么电脑的「软件」是什么呢?即使打开主机,也看不到软件在哪里。既看不见也摸不到,听起来好像很抽象,但是,如果没有软件,就像植物人一样,空有躯体却无法行动。当你启动电脑时,电脑会执行开机程序,并且启动系统」,然后你会启动「Word」程序,并且打开「文件」来编辑文件,或是使用「Excel」来制作报表,和使用「IE」来上网等等,以上所提到的操作系统、打开的程序和文件,都属于电脑的「软件」。软件包括:1、应用软件:应用程序包,面向问题的程序设计语言等2、系统软件:操作系统,语言编译解释系统服务性程序硬件与软件的关系:硬件和软件是一个完整的计算机系统互相依存的两大部分,它们的关系主要体现在以下几个方面。1、硬件和软件互相依存硬件是软件赖以工作的物质基础,软件的正常工作是硬件发挥作用的唯一途径。计算机系统必须要配备完善的软件系统才能正常工作,且充分发挥其硬件的各种功能。2、硬件和软件无严格界线随着计算机技术的发展,在许多情况下,计算机的某些功能既可以由硬件实现,也可以由软件来实现。因此,硬件与软件在一定意义上说没有绝对严格的界面。3、硬件和软件协同发展计算机软件随硬件技术的迅速发展而发展,而软件的不断发展与完善又促进硬件的更新,两者密切地交织发展,缺一不可。参考资料:软件-百度百科硬件-百度百科

nRF24L01无线模块的工作原理

发射数据时,首先将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便再次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。接收数据时,首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。

nRF24L01无线模块的配置字

SPI口为同步串行通信接口,最大传输速率为10 Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入。相应的状态和数据信息是从MISO输出给MCU。nRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问。nRF24L01的配置寄存器共有25个,常用的配置寄存器如表2所示。 地址(H) 寄存器名称 功能 00 CONFIG 设置24L01工作模式 01 EN_AA 设置接收通道及自动应答 02 EN_RXADDR 使能接收通道地址 03 SETUP_AW 设置地址宽度 04 SETUP_RETR 设置自动重发数据时间和次数 07 STATUS 状态寄存器,用来判定工作状态 0A~0F RX_ADDR_P0~P5 设置接收通道地址 10 TX_ADDR 设置发送地址(先写低字节) 11~16 RX_PW_P0~P5 设置接收通道的有效数据宽度 表 (2)6 nRF24L01应用原理框图图(2)

nrf24l01的性能参数

◆ 小体积,QFN20 4x4mm封装◆ 宽电压工作范围,1.9V~3.6V,输入引脚可承受5V电压输入◆ 工作温度范围,-40℃~+80℃◆ 工作频率范围,2.400GHz~2.525GHz◆ 发射功率可选择为0dBm、-6dBm、-12dBm和-18dBm◆ 数据传输速率支持1Mbps、2Mbps ◆ 低功耗设计,接收时工作电流12.3mA,0dBm功率发射时11.3mA,掉电模式时仅为900nA◆ 126个通讯通道,6个数据通道,满足多点通讯和调频需要◆ 增强型“ShockBurst”工作模式,硬件的CRC校验和点对多点的地址控制◆ 数据包每次可传输1~32Byte的数据◆ 4线SPI通讯端口,通讯速率最高可达8Mbps,适合与各种MCU连接,编程简单◆ 可通过软件设置工作频率、通讯地址、传输速率和数据包长度◆ MCU可通过IRQ引脚快判断是否完成数据接收和数据发送

nRF24L01 发送数据完毕后,状态寄存器读出来的数据都是0xff,为什么?

我没有资料在 旁边,但我去年刚完成了一个nRF24L01
无线收发的项目,客户已验收
记得一点是这样写的,希望有帮助

#define tx sta^5 //位定义,状态寄存器的第5位
#define max sta^4
wtb(0xa0,mode);//向TX FIFO 写入一个值mode
ce=1;
for(n=43;n>0;n--);//进入接受模式130us,然后下面的是校验说明书上的STATUS内容

sta=wob(0xff); //读状态,wob函数 是write one byte,自己编的程序向24L01寄存器写1个命令

if(tx) //若状态寄存器的第5位 被置1

{
wtb(0x27,0xff); //些入1 清除标志位

wob(0xe1); //清除TX fifo

sta=wob(0xff); //再读一次STATUS,看tx是否被成功清零,成功清0就闪灯,tmp是一个临时 char型变量,前面已定义,
if(tx==0)
{
while(tmp--)
{led1=1;delay(20000);led1=0;delay(20000);} //灯闪烁的次数是为了测试程序是否成功用
}
}
nRF24L01在中断标志置位后,必须写1清零,不然可能死机
发送接收成功,硬件会自动清FIFO,不必手动清0 FIFO,希望有所帮助,

if(max) //达到最大重发次数,清中断标志,清FIFO

{
wtb(0x27,0xff);
wob(0xe1);
sta=wob(0xff);
}


nrf24l01+的简介

极低的电流消耗,当工作在发射模式下发射功率为0dBm时电流消耗为11.3mA,接收模式时为13.5mA,掉电模式和待机模式下电流消耗更低。因为在无线通讯应用中经常会遇到远距离通讯的要求,目前有一些nRF24L01+无线模块在原设计上增加了PA(功率放大器)和LNA(低噪声放大器)的型号,如“nRF24L01+PA”等。在发射部分通过PA电路将nRF24L01+最大0dBm的输出功率放大到+22dBm左右,同时在接收部分通过LNA电路增加接收信号的强度。通过这种方式可以有效的增加nRF24L01+无线模块的通讯距离,在空旷环境下最高可增加到2km。

上一篇:nootbook

下一篇:nsk轴承官网