NRF24L01

http://blog.csdn.net/wangshenzhen123/article/details/47207837

1、一个发送通道,6个接收通道。发送端发送通道地址寄存器中的地址指向的就是接收端哪个接收通道接收发送端的数据,所以发送端地址寄存器的值要与接收端需要接受数据的通道地址相同。

看一下无线数据传输的数据帧格式

第二部分的地址,就是接收端接收数据的通道地址,这个地址由发送端TX_ADDR寄存器搞定。

2、必须要搞清楚发送地址和接收地址的意义。下面两端描述的是一个意思。我的两次理解。

要先搞清楚TX_ADD和RRX_ADDR_PX。TX_ADD就一个,是发送数据帧格式中发送的地址信息,如上1所示,这个地址指定了向接收端接收数据通道的地址。

发送端的职责:1、发送:发送数据给接收端。2接收:接收某接收端的应答信号。

接收端的职责:1、接收:接收发送端发送的数据。2发送:发送应答信号给发送端。

所以整个过程发送端接收端都有发送和接收的功能。只是发送和接收的东西不一样。

NRF24L01发送端把数据发送给接收端,接收端在确认收到数据后记录发送端的地址,并以此地址为目标地址发送应答信号(这个是自动的,不是程序设置的,应属于硬件实现),(就是说接收端的发送地址寄存器TX_ADDR中存的地址就是发送端TX_ADDR中的地址,而发送端要以又要用通道0来接收应答,所以需要将通道0的地址设置为该地址,即发送端TX_ADDR中的值)。在发送端,数据通道0被用作接收应答信号因此发送端通道0的接收地址要与发送地址端地址相等,以确保接收到正确的应答信号。

注意每个NRF24L01只有一个发送通道,用来指示向接收端NRF24l01的哪个接收通道发送数据,即TX_ADDR(即只有一个发送目标地址寄存器)不要被TX5迷惑,这里5是指第五个NRF24l01.但一个NRF24L01是有6个接收通道的,每个通道有自己的地址。所以一个2401可以接收6个2401发送来的数据。在发送模式下,发送端的2401会用自己接收通道0来接受 接收端的2401发送来的相应信号。但是接收端的2401发送应答信号的时候,也发送的地址就是接收端的某个接受通道的地址。所以发送端的接收通道0的地址要设置成这个地址。

 

例子:

TX5:TX_ADDR=0xB3B4B5B605

TX5:RX_ADDR_P0=0xB3B4B5B605

RX:RX_ADDR_P5=0xB3B4B5B605

3、

两种数据双方向的通讯方式:

如果想要数据在双方向上通讯,PRIM_RX 寄存器必须紧随芯片工作模式的变化而变化。处理器必须保证PTX和PRX端的同步性。在RX_FIFO和TX_FIFO寄存器中可能同时存有数据。

另外还有自己的查阅的一些资料:

这是使用手册上的关于地址的图。

对于发送方他的Rx通道0要和他的发送地址配成一样的。对于接收方0~6必有的哥通道的地址配置为发送发的地址。就是其实所有的地址都是自己设置的,但是要配对的进行设置。

也有人这样理解:

发送方发送了一段代码,代码中携带地址(看做代码的身份证),

接收方接收代码,但接受方设置成了只接收特定身份代码的数据,也就是主机TX_ADDR和从机RX_ADDR要求设置成相同的原因吧。

从机接受完数据之后,将应答信号还发送给刚才设置的那个地址,

主机还是只识别与发送数据时携带的地址相同的数据。

其实,这么理解之后,发现主机和从机根本就没有地址,只是数据携带的地址(数据的身份证)将主机和从机联系起来的。

时间: 2024-08-25 00:15:09

NRF24L01的相关文章

NRF24L01简介

工作在 2.4GHz ISM 频段 „                                     调制方式:GFSK/FSK „                          数据速率:2Mbps/1Mbps/250Kbps  „ 超低关断功耗:0.7uA                                            超低待机功耗:15uA  „                           快速启动时间: ≤ 130uS „ 内部集成高 PSRR

51单片机对无线模块nRF24L01简单的控制收发程序

它的一些物理特性如工作频段.供电电压.数据传输速率就不详细介绍了,直接上代码. 1.首先是发送端: // Define SPI pins #include <reg51.h> #define uchar unsigned char /***************************************************/ #define TX_ADR_WIDTH 5 // 5字节宽度的发送/接收地址 #define TX_PLOAD_WIDTH 4 // 数据通道有效数据宽度

[51单片机] SPI nRF24L01无线 [可以放在2个单片机里实现通信]

main.c 1 #include<reg51.h> 2 #include"2401.h" 3 4 #define uint unsigned int 5 #define uchar unsigned char 6 7 sbit KEY8=P3^7; //发送按键 8 sbit beep=P2^3;//喇叭 9 sbit LED6=P1^6; ////接收到数据后的功能实现灯 10 11 void delay_ms(uint z) //延时函数 12 { 13 uint x

[stm32] NRF24L01+USART搞定有线和无线通信

前言 一般进行远程监控时,2.4G无线通信是充当远程数据传输的一种方法.这时就需要在现场部分具备无线数据发送装置,而在上位机部分由于一般只有串口,所以将采集到的数据送到电脑里又要在上位机端设计一个数据接收的适配器.这里基于stm32分别设计了现场部分和适配器部分,这里只是基本通信功能实现的讲解,一些复杂的技术比如加密.可靠等要根据具体的应用来设计~ 总体说明 这里采用stm32作为MCU,采用nRF24L01作为2.4G通信模块.其中适配器中仅仅采用了USART和NRF24L01两个主要部分,负

【Espruino】NO.15 nRF24L01+无线收发器

http://blog.csdn.net/qwert1213131/article/details/35853747 本文属于个人理解,能力有限,纰漏在所难免,还望指正! [小鱼有点电] [Espruino中文社区] nRF24L01+(或nRF24L01P)是一款工作在2.4~2.5GHz 世界通用ISM 频段的单片无线收发器芯片.无线收发器包括:频率发生器.增强型SchockBurst模式控制器.功率放大器.晶体振荡器调制器.解调器.输出功率频道选择和协议的设置可以通过SPI接口进行设置.

nRF2401A/nRF24L01/nRF24L01+无线模块最常见问题汇集(转)

俗话说:每个人一生下来什么都会的,都是通过自己努力和探索出来的,NRF系列芯片,刚开始都好奇心加兴趣才来捣鼓它的,刚开始做硬件和软件,没有收发数据弄得整个人头都快炸开了,所以在此和大家分享一下前辈的经验,希望大家会少走弯路. Q:最近在选型的时候发现基本常见的无线模块都是3V供电,而我使用的单片机是5V的,它们之间要怎么连接呢?直接连接会不会损坏模块? 回答: 如果你使用的51单片机的P0口是高阻引脚,可以直接将无线模块的IO脚连接到P0端口,并在对应的连线与3V电源间放置1K~10K左右的偏置

[51单片机] nRF24L01 无线模块 测试 按键-灯-远程控制

哈哈,穷吊死一个,自己做的一个超简单的板还没有电源提供,只得借助我的大开发板啦.其实这2个模块是完全可以分开的,无线嘛,你懂得!进入正题,这个实验的功能就是一个发送模块(大的那个板)连接4个按键,通过按动这4个不同的按键来发送4种不同的命令,来控制接收端(小的板)点亮4个不同的灯. >_<!首先是发送模块: 1 void main() 2 { 3 uchar Tx_Buf1[]={1}; //发送的信息1 4 uchar Rx_Buf[32]; //接收到的数据暂存器,最多32字节数据 5 i

基于stm32的遥控小船(二)NRF24L01无线模块

无线收发数据我用的模块是NF24L01……这个模块小巧而便宜……几个引脚如图……功能大概是这样的 CSN:片选,电平为低时芯片工作 CE:CSN为低时控制CE状态 SCK:SPI时钟 MOSI:Master output slave input MISO:Master input slave output IRQ:中断,低电平触发(发送完成,接收数据,达到最大重发次数时触发) 关于这个模块详细的可以参照<NRF24L01学习笔记>……写的很全面详尽…… 调无线对我来说是一个比较痛苦的过程……我

2.4G无线射频通信模块nRF24L01+开发笔记(基于MSP430RF6989)

根据网上的nRF24L01+例程和TI提供的MSP430RF6989的硬件SPI总线例程编写程序,对硬件MSP-EXP430RF6989 Launch Pad+nRF24L01P射频模块(淘宝购买)进行调试. 一.nRF24L01+初始化寄存器配置失败的原因(2015年12月20日) 1. SPI总线的配置要和配对设备一致,详见<MSP430中SPI总线的两种实现方式>. 2. 在nRF24L01+初始化寄存器配置的过程中,部分寄存器总出现写入失败(ENAA.RF_CH.CONFIG),保持缺