NRF24L01学习操作教程(一)——NRF基础知识与相关寄存器介绍_nrf24l01模块使用教程(1)

本文介绍了NRF24L01无线收发模块的基础知识,包括自动重发寄存器、射频频率设置、状态寄存器等关键寄存器的配置,并提供了基于STM32 HAL库的驱动程序编写指导。适合嵌入式工程师学习和提升。
摘要由CSDN通过智能技术生成

​ 可以设置接收发送模式下地址的宽度,默认使用5字节的宽度。

2.2.5自动重发寄存器(地址:04)

image-20230510203431603

​ nRF24L01配置为Enhanced ShockBurst 发送模式下时,自动重发功能是针对自动应答系统的发送方。在每次发送结束后系统都会进入接收模式并在设定的时间范围内等待应答信号,如果没有收到应答信号,则系统返回到发送模式并重发数据直到收到确认信号或重发次数超过设定值(达到最大的重发次数。

2.2.6射频频率设置寄存器(地址:05)

image-20230510204613860

频率计算公式:2400+RF_CH(MHz),即NRF可设置的频率为2400~2525(MHZ)之间

2.2.7射频配置寄存器(地址:06)

image-20230510205234408

2.2.8状态寄存器(地址:07)

image-20230510210320065

image-20230510210334095

​ nRF24L01的中断引脚(IRQ)为低电平触发,当状态寄存器中TX_DS、RX_DR、MAX_RT 为高时触发中断。当MCU给中断源写‘1’时,中断引脚被禁止。可屏蔽中断可以被IRQ中断屏蔽。通过设置可屏蔽中断位为高,则中断响应被禁止。默认状态下所有的中断源是被禁止的。

2.2.9数据通道接收地址配置寄存器(地址0A-0F)

image-20230510211123985

​ 注意,数据通道2~数据通道5的地址高四字节,与数据通道1地址的高四字节相同。

2.2.10发送地址配置寄存器(地址10)

image-20230510211627786

2.2.11接收通道0有效数据宽度配置寄存器(地址11)

image-20230510212316936

2.2.12FIFO状态寄存器(地址17)

image-20230510212523998

image-20230510212537576

三、NRF24L01驱动程序

​ 根据NRF官方手册的寄存器操作,这里编写了基于STM32 HAL库的驱动程序,.c文件和.h文件如下。代码里有详细的函数注释

//NRF24L01 驱动函数
#include "NRF24L01.h"
#include "main.h"
#include "spi.h"
#include "stdio.h"
#include "string.h"

unsigned char INIT_ADDR[5]= {0x00,0x1A,0xB1,0xB1,0x01}; //节点地址

void delay\_us(uint32\_t n)
{
	unsigned char i;
	while(n--)
	{
		i = 8;
		while(i--);
	}
}

//初始化24L01的IO口
void NRF24L01\_Init(void)
{
	Clr_NRF24L01_CE;    // chip enable
	Set_NRF24L01_CSN;   // Spi disable
	delay\_us(100);
}

//上电检测NRF24L01是否在位
//写5个数据然后再读回来进行比较,
//相同时返回值:0,表示在位;否则返回1,表示不在位
unsigned char NRF24L01\_Check(void)
{
	unsigned char buf[5]= {0XA5,0XA5,0XA5,0XA5,0XA5};
	unsigned char buf1[5];
	unsigned char i;    	 
	NRF24L01\_Write\_Buf(SPI_WRITE_REG+TX_ADDR,buf,5);//写入5
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值