资讯详情

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

NRF24L01模块数据,网上已经很详细了,这里不再重复描述知识点。

按操作顺序分为七个步骤,注明重点和暗坑。方便自己管理知识,方便同行兄弟查阅。

在代码方面,尽量解释一行代码。(如果有纠正和问题,可以留言交流,快速回复。

一、思维导图

二、 引脚连接,解释

三、SPI初始化,函数包装

四、NRF24L01参数写入

五、中断处理函数

六、发送数据

七、接收数据

八、代码下载


一、思维导图

直接思维导图更有效,有三种主要工作模式,八个命令字,每包32字节有效数据等。

组织主要点,包括工作模式、命令字等图例。如果你仔细阅读,你可以立即在心里有一个框架。

点击图片可以成为一个清晰的大图片。当然,右击保存更方便查看。


二、 引脚连接,解释

明确一个,NRF24L01和SI24R1.引脚和程序是通用的,不需要任何修改。市场上的大部分都是NRF24L01模块,用的是SI24R1芯片。两者之间的通信也是互通的,已经测试确认!

以下是安全可靠的通用模块引脚SI24R1模块为例:

共8个引脚:

  1. :3.3V。1.9~3.6V都成,不要接5V,马上烧!
  2. :接地
  3. : 模式控制。配合高低电平CONFIG寄存器PRIM_RX和PWR_UP两位,可切换工作状态: 发送、接收 、待机。
  4. : 中断信号引脚。发生以下事件。三种中断时,引脚电平被NRF拉低:发送成功,接收数据,达到最大重发次数。
  5. : SPI的CS片选引脚
  6. : SPI时钟线引脚
  7. : SPI主出从入数据引脚
  8. : SPI数据从出数据引脚

三、SPI初始化,函数包装

将这个写入配置的动作分为两部分,即操作两种通信,不要混淆。

这两个通信,理解一下~

  • 使用SPI,主机完成对NRF所有控制实际上是四个操作:;
  • 上述控制,分拆到SPI在操作中,常用的6个函数:SPI初始化、字节收发、写1字节、读1字节、写N字节、读N字节;
  • :是NRF与NRF间通信的参数值, 如频道 ,速率,CRC检查、自动回答、自动重发、目标地址...
  • ,主要是STATUS用于判断中断源的状态寄存器值;
  • ,写下待发送的数据TX_FIFO. NRF包中最大32字节的有效数据按包发送;手动分包;
  • ,检测到RX_DR中断发生后(IRQ拉下引脚),用SPI把RX_FIFO读取并存储缓冲区的值;
  • NRF的SPI通信速度可达10MHz,但是,为了保证数据传输的完整性,尽量不要超过8MHz;
  • NRF要求SPI通信时,上升沿采样数据时要注意顺序。

  • NRF根据主机刚才写的芯片的参数值开始工作(手动),通过电波传输到另一个芯片或接收其他芯片的数据(自动)。
  • 我们要做的就是控制这部分通信CE引脚的高低电平,配合CONFIG寄存器,使NRF三种状态切换:接收、发送和待机。
  • NRF我们之间的无线通信基本上什么都没有。

标签: 2401电阻值

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台