STM32驱动NRF24L01无线模块

article/2025/9/21 0:48:06

目录

  • 一、模块简介
  • 二、工作模式
  • 三、主要命令
  • 四、配置寄存器
  • 五、状态寄存器
  • 六、接收模式
  • 七、发送模式
  • 八、STM32使用NRF24L01模块

一、模块简介

NRF24L01是NORDIC公司生产的一款无线通信芯片,采用FSK调制,内部集成NORDIC自己的Enhanced Short Burst 协议,可以实现点对点或者1对6 的无线通信,通信速率最高可以达到2Mbps.
NRF24L01采用SPI通信。
在这里插入图片描述

①MOSI 主器件数据输出,从器件数据输入
②MISO 主器件数据输入,从器件数据输出
③SCK 时钟信号,主器件产生
④CSN 从器件使能信号
⑤CE 使能器件的发送模式或接收模式
⑥IRQ 中断信号,发生中断变低电平。TxFIFO发完并且收到ACK、RxFIFO收到数据、达到最大重发次数。

二、工作模式

NRF24L01工作模式,由CE和CONFIG寄存器的PWR_UP和PRIM_RX位共同控制
在这里插入图片描述

三、主要命令

在这里插入图片描述

四、配置寄存器

在这里插入图片描述

五、状态寄存器

在这里插入图片描述

六、接收模式

Rx模式初始化过程:
初始化步骤24L01相关寄存器
①写Rx节点的地址RX_ADDR_P0
②使能AUTO ACK EN_AA
③使能PIPE 0 (通道0) EN_RXADDR
④选择通信频率 RF_CH
⑤选择通道0 有效数据宽度 RX_Pw_P0
⑥配置发射参数(低噪放大器增益、发射功率、无线速率)RF_SETUP
⑦配置24L01 的基本参数以及切换工作模式 CONFIG

七、发送模式

Tx模式初始化过程:
①写Tx节点的地址TX_ADDR
②写RX节点的地址(主要是为了使能Auto Ack) RX_ADDR_P0
③使能AUT0 ACK EN_AA
④使能PIPE 0 EN_RXADDR
⑤配置自动重发次数 SETUP_RETR
⑥选择通信频率 RF_CH
⑦配置发射参数(低噪放大器增益,发射功率,无限速率) RF_SETUP
⑧选择通道0 有效数据宽度 RX_Pw_P0
⑨配置24L01 的基本参数以及切换工作模式 CONFIG

八、STM32使用NRF24L01模块

在这里插入图片描述


STM引脚具体接线如下,在spi.c以及NRF24L01.h里可查看
CE   —— PB8
CSN  —— PB9
IRQ  —— PB6
SCK  —— PB13 
MISO —— PB14
MOSI —— PB15

单片机通过NRF2401不断向串口发送tx_buf里的内容

主程序:
#include "main.h"
#include "delay.h"
#include "sys.h"
#include "USART.h"
#include "NRF24L01.h"extern u8 tx_buf[33];
extern u8 rx_buf[33];int main(void)
{		initSysTick();USART_init()	;NRF24L01_Init();while(NRF24L01_Check())	 //¼ì²âNRF24L01ÊÇ·ñ´æÔÚ{printf("Error  \n ");			}printf("Success  \n ");	NRF24L01_TX_Mode(); while(1){if(NRF24L01_TxPacket(tx_buf) == MAX_TX ){printf("·¢Ëͳɹ¦ Êý¾ÝΪ %s \r\n",tx_buf);	}}
}

在这里插入图片描述

完整工程 链接.


http://chatgpt.dhexx.cn/article/TexVchlN.shtml

相关文章

nRF24L01无线模块笔记

nRF24L01模块 官网链接: https://www.nordicsemi.com/Products/nRF24-series 常见的无线收发模块, 工作在2.4GHz频段, 适合近距离遥控和数据传输. nRF24L01是一个能兼顾距离和数据速率的无线模块, 在空旷环境下,2M速率15米, 1M速率30米, 250K速率能达到50米. 和蓝牙…

NRF24L01+模块:一对一双向通信,成功!

查找了很多资料,好多都是复制粘贴转发,或者安装英文手册直译的(比如我自己上篇笔记,,),看完还是一脸懵逼,没几个可行的,推荐几个比较实在的资料:手册我也不是…

NRF24L01 无线通信模块使用方法

原文出处:http://blog.csdn.net/mc_hust/article/details/39473913 昨天登录百度账号,无意间发现漏看了好多朋友的私信,其中不少是找我探讨关于NRF2401模块的。从12年到14年的信件都有(平时很少注意系统提示信息。。。&#xff0…

STM32 + 无线通信模块 NRF24L01 数据收发

NRF24L01的模块资料,网上已很详尽了,在这不再重复描述知识点了。 这篇文章的目的,旨在把主要知识点胶接起来,梳理成一套完整的步骤,使器件快速上手汇入工作使用。 将按操作顺序,拆分成7个步骤,…

NRF24L01 无线模块

NRF24L01 简介 NRF24L01 可以实现点对点或者是1(收)对6(发)的无线通信。NRF24L01 采样SPI通信,很方便连接MCU NRF24L01 无线模块,采用的芯片是 NRF24L01,该芯片的主要特点如下: 1&a…

NRF2401模块

一、模块介绍 (1) 2.4Ghz 全球开放 ISM 频段免许可证使用 (2) 最高工作速率 2Mbps,高效 GFSK 调制,抗干扰能力强,特别适合工业控制场合 (3) 126 频道,满足多点通信和跳频通信需要 (4) 内置硬件 CRC 检错和点对多点通信地址控制…

Nrf24l01无线模块

Nrf24l01无线模块 一,模块介绍 二,接口电路, 模块连接注意点: (1) VCC 脚接电压范围为 1.9V~3.6V 之间,不能在这个区间之外,超 过 3.6V 将会烧毁模块。推荐电压 3.3V 左右。 (2) 除电源 VCC 和接地端&…

51驱动NRF24L01通信,NRF24L01与TTL转NRF24L01模块通信

51驱动NRF24L01通信,NRF24L01与TTL转NRF24L01模块通信 NRF24L01一、简介二、引脚功能描述 程序设计一、对 24L01 的程序编程的基本思路如下:二、Tx 与 Rx 的配置过程1、Tx 模式初始化过程:2、Rx 模式初始化过程: 三、基本程序函数…

详解NRF24L01无线收发模块

近日有粉丝朋友留言,希望介绍一下nRF24L01这款无线收发芯片,正巧前不久的电赛有些涉及,因此将自己的一些经验写在这里,希望能有所收获。 前面我们介绍过单片机的几种通信协议,并且初步了解如何操作寄存器进而控制芯片的…

nRF24L01芯片(模块)介绍

nRF24L01芯片(模块)简介 nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。 输出功率频道选择和协议的…

2.4G通信

文章目录 2.4G无线通信实验一、模块简介二、Enhanced ShockBurstTM模式介绍三. 编程1.初始化IO口2.Enhanced ShockBurstTM发送流程3.Enhanced ShockBurstTM发送模式初始化4.Enhanced ShockBurstTM接收流程5.Enhanced ShockBurstTM接收模式初始化6.读函数7.写函数8.主函数 总结 …

无线收发模块——NRF24L01

1、什么是nRF24L01 nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。有着极低的电流消耗。 nRF24L01与5V单片机的连接通过SPI接口进行通讯,输出功率频道选择和协议的设置可以通过SPI 接口进行设置,几乎可以连接到各种单片…

分布式集群脑裂问题

Zookeeper集群"脑裂"问题 - 运维总结 在分布式集群的脑裂问题中,zookeeper脑裂是一个经典的例子。 在zookeeper集群中,有一个leader和多个follower(observer不参与选举,可以忽略),leader通过周…

分布式脑裂问题

"脑裂"定义 脑裂(split-brain)就是“大脑分裂”,也就是本来一个“大脑”被拆分了两个或多个“大脑”,我们都知道,如果一个人有多个大脑,并且相互独立的话,那么会导致人体“手舞足蹈”,“不听使唤…

Redis常见问题——脑裂问题

文章目录 背景一、脑裂问题产生二、选举完成三、总结四、解决方法 背景 脑裂问题:有三台服务器一台主服务器,两台从服务器,还有一个哨兵(哨兵就相当于一个代码段,不参与实际业务) 一、脑裂问题产生 解释一…

Redis脑裂现象

Redis脑裂现象 什么是Redis的脑裂现象 当Redis主从集群环境出现两个主节点为客户端提供服务,这时客户端请求命令可能会发生数据丢失的情况。 脑裂出现的场景 场景一 主从哨兵集群中如果当发生主从集群切换时,那么一定是超过预设quorum数量的哨兵和主…

redis集群(主从)脑裂及解决方案

什么是redis的集群脑裂? redis的集群脑裂是指因为网络问题,导致redis master节点跟redis slave节点和sentinel集群处于不同的网络分区,此时因为sentinel集群无法感知到master的存在,所以将slave节点提升为master节点。此时存在两个…

redis脑裂

脑裂:在主从集群中,同时有两个主节点他们都能接收写请求。而脑裂最直接影响的就是客户端不知道往哪个主节点写入数据,结果就是不同的客户端往不同的主节点写入数据。而且严重的会导致数据丢失。 为什么会发生脑裂? 1.确认是不是数…

【集群】脑裂是什么?Zookeeper是如何解决的?

文章目录 什么是脑裂Zookeeper集群中的脑裂场景过半机制 什么是脑裂 脑裂(split-brain)就是“大脑分裂”,也就是本来一个“大脑”被拆分了两个或多个“大脑”,我们都知道,如果一个人有多个大脑,并且相互独立的话,那么…

PXC脑裂问题分析与解决

前言 在使用PXC架构做mysql集群时,线上出现过一次PXC脑裂的故障,通过问题排查,分析与定位,最终针对这个问题以及解决方法做一次记录 脑裂现象表现 1、产品访问MySQL,出现数据不一致的情况(脑裂后一个集群分裂成两个独立的集群,如PXC前置是通过LVS架构访问,当VIP发生…