一、NRF24L011.1 NRF24L01简介 NRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。 NRF24L01的输出功率频道选择和协议的设置均可以通过SPI 接口进行设置,因此,其具有极高的兼容性,几乎可以连接到各种单片机芯片,并完成无线数据传送工作。除此之外,NRF24L01的功耗也非常的低,当工作在发射模式下发射功率为0dBm 时电流消耗仅为11.3mA ,接收模式时为12.3mA,掉电模式和待机模式下电流消耗更低。所以NRF24L01可以广泛地应用在无线键鼠、无线门禁、无线电台、智能工业设备、玩具等场合。 如下表所示列举了NRF24L01的特性参数。 参数名称 | | | | | | | | | | | 可选择为0dBm、-6dBm、-12dBm和-18dBm | | | | 接收时工作电流12.3mA,0dBm功率发射时11.3mA,掉电模式时仅为900nA | | 126个通讯通道,6个数据通道,满足多点通讯和调频需要 | | 支持增强型“ShockBurst”工作模式,硬件的CRC校验和点对多点的地址控制 | | | | 4线SPI通讯端口,通讯速率最高可达8Mbps,适合与各种MCU连接,编程简单 | | MCU可通过IRQ引脚块判断是否完成数据接收和数据发送 |
如下图所示为NRF24L01芯片实物图 二、2.4G双机通信2.1 NRF24L01使用方法NRF24L01是以包的形式进行发送的,具体的包格式如下表所示。 NRF24L01在通信前需要进行一系列的参数配置,而在配置其参数时,NRF24L01必须工作待机模式,即CE脚拉低。在发送模式下的配置流程如下表所示。 配置为接收模式的流程如下表所示。 配置完后就是发送和接收的处理了,发送的流程如下表所示。 1 | | | | | | | 判断之前读取到的状态寄存器中的值判断是发送完成还是发送失败 | | |
接收流程如下表所示。 1 | | | | | 判断状态寄存器中得值,是否接受成功 (成功就读取fifo中的数据,并且清空fifo) |
三、2.4G双机通信实验2.4G双机通信实验涉及到遥控器端和飞控端,两者的2.4G通道均设置为110。首先配置遥控器端的左摇杆的按键为外部中断模式,一旦按下做摇杆按键,就发送“Remoter”这个字符串到飞控上,飞控接收到后,把LED航情灯进行闪烁,然后再向遥控器回发“Airplane”这个字符串,遥控收到后,闪烁电源指示灯。无论是遥控器还是飞控使用NRF24L01均使用到了STM32的硬件SPI,不同的是遥控器使用的是SPI2,而飞控使用的是SPI1。STM32的SPI配置方法可以参考飞控开发基础《SPI(六轴传感器数据获取)》。 3.1遥控器端本次实验中遥控器端触发无线数据的发送是通过外部中断实现的,具体的外部中断配置可以参考《遥控器开发实战-中断》。在该中断中向飞控发送“Remoter”字符串,具体代码如下图所示。 遥控器端的NRF24L01的初始化代码如下图所示。 遥控器端的接收处理是在主循环中轮询实现的,收到飞控发来的信息后,电源指示灯闪烁,具体代码如下图所示。 3.2飞控端飞控端的无线数据接收在主循环中实现,接收到遥控器发送的信息后,电源指示灯闪烁,且向遥控端回发“Airplane”,具体代码如下图所示。 飞控端的NRF24L01的初始化代码如下。 3.3实验现象把遥控器端代码下载到遥控器内、飞控端代码下载到飞控内。上电,此时按下遥控器的左摇杆按键,可见飞控四个电机底部的LED航情灯闪烁,然后遥控的电源指示灯也闪烁。这就意味着飞控收到了来自遥控器端的信息并且回发了信息给遥控器,且遥控器也收到了来自飞控端的回发信息。如下图所示为飞控航情灯以及遥控左按键及电源指示灯。
|