NRF24L01

news/2024/11/22 5:42:58/

参考:STM32控制NRF24L01无线模块进行通信
具体操作寄存器工作原理请上B站:
无线模块NRF24L01
注意:

**//注意:以下两个步骤十分重要,千万不要写错SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;		//串行同步时钟的空闲状态为低电平  注意这里是空闲状态是低电平SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;	//串行同步时钟的第1个跳变沿数据被采样**

1、NRF24L01引脚说明:
在这里插入图片描述

CE:RX或TX模式选择 
CSN:SPI片选信号 
SCK:SPI时钟 
MOSI:SPI数据输入 ,即主器件数据输出,从器件数据输入。
MISO:SPI数据输出 ,即主器件数据输入,从器件数据输出。
IRQ:可屏蔽中断脚
  • 在CSN为低电平的情况下,CE协同CONFIG寄存器共同决定NRFL2401的状态。
  • IRQ在中断时变成低电平。TxFIFO发送完毕且收到ACK时、RxFIFO收到数据、达到最大重发次数时会产生中断。

2、NRF24L01采用SPI通信协议:

  • 采用主从方式工作,全双工,同步(需要时钟线)通信总线
  • SCK信号线只由主设备控制,且数据为一位一位的进行传送
  • SPI的数据输入和数据输出线独立
  • MOSI:主机输出,从机输入。M:Master(主机),S:Slavel(从机)
  • MISO:主机输入,从机输出
  • 没有指定的流控制,没有应答机制确认是否接收到数据
  • MOSI的意思就是说如果此芯片作为主机时,该引脚(MOSI引脚)就是输出,如果此芯片作为从机时,该引脚(MOSI)引脚就是输入。MISO与其类似的道理。
  • 由于SPI采用两个移位寄存器来实现数据的交换,所以在八个时钟过后,主机的数据会发送到从机中,同时,从机的数据也会发送到主机中。

3、底层驱动时序图:
在这里插入图片描述

  • 数据为先发高位,再发低位,在时钟SCK的上升沿,数据发送出去。
  • 每次通信前,需要先发送命令位,即图中的C7-C0。
  • S7-S0为status寄存器位。
  • D7-D0为数据位。

3、相关指令操作:
在这里插入图片描述

  • R_REGISTER:读寄存器指令,指令格式为000A AAAA,其中AAAAA为要读取的寄存器地址,使用时,只需要让该指令逻辑或上寄存器地址即可,或者让该指令加上寄存器地址。
  • W_REGISTER:写寄存器指令,用法与读指令类似。
    4、相关读写驱动程序:
    (1)同步读写程序:
/****************************************************************************************************
/*功能:NRF24L01的 SPI同步读写时序
/****************************************************************************************************/
uchar SPI_RW(uchar reg)//在发送一字节的同时,还会收到一字节的数据
{uchar bit_ctr;for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit{MOSI = (reg & 0x80);         // 主机发送一字节数据的最高位reg = (reg << 1);           // 主机将要发送的数据左移一位。注意SPI通信是先发高位,再发低位SCK = 1;                    // 拉高SCK时钟线reg |= MISO;       		  // 获取从机发给主机的一位数据,将其放到主机寄存器的最低位SCK = 0;            	// 拉低SCK时钟线}return(reg);           		  // 返回从机发给主机的数据
}
(2)读取寄存器内的内容的程序
/****************************************************************************************************
/*功能:NRF24L01的SPI读寄存器时序
/****************************************************************************************************/
uchar SPI_Read(uchar reg)
{uchar reg_val;CSN = 0;                // 片选信号拉低,低电平有效SPI_RW(reg);            // 选择将要读的寄存器地址reg_val = SPI_RW(0);    // 读取寄存器内的数据信息,此时又向被读的寄存器内写入了数据0,其实写多少都不影响我们对该寄存器内容的读操作。CSN = 1;                // 片选信号拉高,终止SPI通信return(reg_val);        // 返回寄存器里的内容
}

SPI相关基础知识:

  • SPI Serial Peripheral interface 串行外围设备接口
  • 它是一种高速的、全双工、同步的通信总线
  • 同步的:有单独的时钟线
  • 全双工:发送和接收也分别是独立的通信线
  • SPI一般采用四根线通信
    (1)SCLK:时钟信号
    (2)CS:从设备片选信号,由主设备控制
    (3)MOSI:主设备数据输出,从设备数据输入
    (4)MISO:主设备数据输入,从设备数据输出
    注:MOSI引脚的意思是说,如果当前设备是主机(Master)时,此引脚(MOSI)就是输出引脚,如果当前设备是从机(Slavel)时,此引脚(MOSI)就是输入引脚。

1、SPI内部结构简明图
在这里插入图片描述
由上图我们可以看出,主机和从机通过MOSI和MISO两根线进行相连,并且主从机内部都有一个移位寄存器。主从机共用一个时钟信号线,故称其为同步通信。SPI通信是按位进行的,即一个时钟只发送一位数据,且先发送高位再发送低位。当一个时钟上升沿到来时,主机的一位数据发送到从机,同时从机的一位数据也发送到了主机,即一个时钟脉冲的作用下,主从机实现了一位数据的交换,当八个时钟脉冲之后,主从机就实现了一个字节的交换,也就是说主机在向从机发送一个字节数据的同时,从机也会给主机发送一个字节的数据,这就是SPI通信的基本原理,和其他通信协议还是有区别的。
2、SPI通信原理总结:

  • 硬件上为4根线
  • 主机和从机都有一个串行移位寄存器,主机通过向他的SPI串行移位寄存器写入一个字节来发起一次传输。
  • 串行移位寄存器通过MOSI信号线将字节传送给从机,从机也将自己的串行移位寄存器中的内容通过MISO信号线返回给主机。这样,两个移位寄存器中的内容就被交换。
  • 外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。

http://www.ppmy.cn/news/137198.html

相关文章

NR/5G ~ R16 dormant BWP

在CA场景下&#xff0c;Scell的业务量要比Pcell更加稀疏&#xff0c;DRX节能信号仅可以配置在Pcell上&#xff0c;Scell无法实现DRX唤醒功能&#xff0c;R16引入dormant DL BWP&#xff0c;终端在该状态下无需检测PDCCH&#xff0c;仅需要做一些测量操作以维持链路性能&#xf…

口交换机睿易 RG-NBS1826GC 24 口

接口形态不将就&#xff0c;标配光纤接口 传输性能不将就&#xff0c;标配千兆上联口和大缓存设计 端口数量不将就&#xff0c;8/16/24 三种选择 楼宇对讲交换机不将就&#xff0c;保证开锁指令 品质服务不将就&#xff0c;监控专用交换机 接口形态不将就&#xff0c;标配光纤接…

NR接入网概述

系列文章目录 第一章 NR物理层射频概述 文章目录 系列文章目录前言一、NR物理层标准概述二、射频部分三、用户信道带宽四、信道安排1. 信道间隔2.信道格栅3.同步格栅 总结 前言 工作需要&#xff0c;我需要对5G物理层的相关标准做比较深入的学习和研究。在一段时间的学习之后…

nRF24l01无线传输

模块简介&#xff1a; 它是一款工作于2.4GHZ~2.5GHZISM频段&#xff0c;带功放通信距离可达上千米&#xff0c;近距离传输速度可达2Mbps&#xff0c;具有6通道且每通道都有自己的缓冲区&#xff0c;可以同时跟不同的NFR进行通信的无线收发模块。 工作模式&#xff1a;接收模式…

nRF52832 配对和绑定

文章目录 nRF52832 配对和绑定1、在连接时&#xff0c;nRF52832向蓝牙主机发送配对请求2、主机收到配对请求后&#xff0c;向nRF52832发送安全参数请求&#xff0c;nRF52832收到后回复请求3、判断配对是否成功4、设置密码显示5、设置静态密码6、设置允许重复配对 nRF52832 配对…

NRF24L01(1)

以NRF24L01为例&#xff0c;实现无线通信 NRF24L01采用SPI通信&#xff0c;可以很方便的连接到MCU上。 NRF24L01的特点&#xff1a; &#xff08;1&#xff09;2.4G全球开放的ISM频段&#xff0c;免许可证使用。 &#xff08;2&#xff09;最高工作速率2Mbps&#xff0c;高校的…

【ns-3】添加nr(5G-LENA)模块

文章目录 前言1. 下载5G-LENA源代码2. 配置并重新构建ns-3项目参考文献 前言 本篇以ns-3.37为例介绍如何在ns-3中添加nr&#xff08;5G-LENA&#xff09;模块 [1]。5G-LENA是一个由Mobile Networks group CTTC&#xff08;Centre Tecnolgic de Telecomunicacions de Catalunya…

ISP—BNR

文章目录 BNR的必要性矫正方法PCA-Based Spatially Adaptive Denoising of CFA Images for Single-Sensor Digital CamerasPSEUDO FOUR-CHANNEL IMAGE DENOISING FOR NOISY CFA RAWDATANoise Reduction for CFA Image Sensors Exploiting HVS Behaviour 算法实现**相关链接** B…