首页 > 试题

nrf2401

更新时间:2023-02-04 02:16:22 阅读: 评论:0

抖音上买的祛斑产品是真的吗-绿树阴浓夏日长


2023年2月4日发(作者:成长烦恼作文600字)

1

nRF24L01无线通信系统设计

学院:电子信息学院

专业:电子信息工程

姓名:

学号:

指导老师:

1

摘要

本文介绍了一套基于STM32微处理器,结合nRF24L01无线通信模块的无线数据传输

系统。nRF24L01无线通信系统是基于nRF24L01无线收发芯片,以STM32F103单片机为

核心的半双工无线通信系统,文中详细阐述了该无线通信系统的硬件和软件设计。该系统

主要由一个nRF24L01无线通信模块组成,在硬件基础上,结合nRF24L01的特点,实现了

两个nRF24L01无线通信模块之间的通信。

关键字:nRF24L0l;STM32;无线通信

Abstract

Thispaperintroducesawirelesscommunicationsystem,asystem

badonSTM32microprocessor,combinedwithnRF24L01wireless

24L01wirelesscommunicationsystemis

badonnRF2L01wirelesstransceiverchip,halfduplexwireless

paperdescribesthehardwareandsoftwaredesignofthewireless

temmainlyconsistsofanRF24L01

wirelesscommunicationmodule,basingonthehardwareandcombining

withthecharacteristicsofnRF24L01,andrealizetheimplementationof

communicationbetweentwonRF24L01wirelesscommunication

modules.

Keywords:nRF24L01;STM32;WirelessCommunication

2

前言

无线方案适用于布线繁杂或者不允许布线的场合,目前在遥控遥测、门禁

系统、无线抄表、小区传呼、工业数据采集、无线遥控系统、无线鼠标键盘等

应用领域,都采用了无线方式进行远距离数据传输。目前,蓝牙技术和Zigbee技

术已经较为成熟的应用在无线数据传输领域,形成了相应的标准。然而,这些

芯片相对昂贵,同时在应用中,需要做很多设计和测试工作来确保与标准的兼

容性,如果目标应用是点到点的专用链路,如无线鼠标到键盘,这个代价就显

得毫无必要。

本无线数据传输系统采用挪威Nordic公司推出的工作于2.4GHzISM频段的

nRF2401射频芯片。与蓝牙和Zigbee相比,nRF2401射频芯片没有复杂的通

信协议,它完全对用户透明,同种产品之间可以自由通信。更重要的是,nRF2401

射频芯片比蓝牙和Zigbee所用芯片更便宜。系统由单片机STM32F103控制无线

数字传输芯片nRF2401,通过无线方式进行数据双向远程传输,两端采用半双工

方式通信,该系统具有成本低,功耗低,软件设计简单以及通信可靠等优点。

3

一、nRF2401无线通信系统设计方案与论证

1.1CPU的选择

本设计中MCU使用的CPU是STM32F103xx增强型系列。

STM32系列微控制器是由ST意法半导体公司一ARMCortex-M3为内核开发生产的

32位微控制器(单片机),专为高性能、低成本、低功耗的嵌入式应用专门设计。工作频率

为72MHz,内置高速存储器(最高可达512K字节的内存和64K字节的SRAM),可以用

于存储程序和节点在工作过程中采集到的数据和无线传输的数据。具有丰富的增强型I/O

端口和连接到两条高性能外设总线(AdvancedPeripheralBus,APB)的外设。串行外设接

口(SPI)提供与外部设备进行同步串行通讯的功能,可实现nRF24L01串行口高速通信,

通过接口可以被设置工作在主模式或者从模式。该系列单片机还内置了快速的中断控制器,

使得中断间的延迟时间大大降低。因此系统设计中选用STM32F103RBT6微处理器拥有如

下如下优点:

7组16位GPIO口、5组USART串口、多个外部中断口;

外设包含多个定时器、SPI通信口、FSMC液晶控制口、12位ADC转换口;

最大功耗118mW,待机功耗7uW,属于高性能低功耗微处理器,在很大程度上提高了

系统设计的nRF24L01无线通信分系统的工作性能。

1.2无线通信模块的选择

系统选用nRF24L01无线射频收发模块来实现nRF24L01无线通信分系统的通讯,它使

用Nordic公司的nRF24L01芯片开发而成。nRF24L01是一款工作在2.4~2.5GHz世界通

用ISM频段的单片无线收发器芯片,集无线收发一体可用于短距离无线数据传输。该芯片

内部集成了2.4GHz无线收发内核。体积小,功耗较低,外围电路简单。单收发,使用GFSK

调制方式,内置了链路层,具有自动应答以及自动重发功能,地址及CRC检测功能,数据

传输为1或2Mbps,使用SPI接口与微控制器连接进行芯片的配置和数据的传输,SPI接口

的数据速率0~8Mbps,具有125个可选的射频通道,工作电压为1.9~3.6V。无线收发器包

括:频率发生器增强型SchockBurst

TM

模式控制器功率放大器、晶体振荡器调制器、解调

器输出功率频道选择和协议的设置。可以通过SPI接口进行设置,极低的电流消耗当工作

在发射模式下发射功率为-6dBm时电流消耗为9.0mA。接收模式时为12.3mA掉电模式和

待机模式下电流消耗更低。

nRF24L01芯片已经被广泛应用到无线鼠标、键盘、遥控器等小型电子设备以及安防系

统、门禁系统、遥感勘测系统等大型系统中,这些设备已占有很强的市场优势,相关技术

也已趋于成熟。随着人们对低成本无线网络需求的不断增强,目前国内外研究机构已对

nRF24L01在组网技术上的研究已形成新的热点,并在相关领域取得一定成就,因此本次设

计中选择此射频芯片进行无线通信,以确保短距离通信的有效性和可靠性。

4

1.3显示模块的选择

LED数码管具有功耗低,亮度高,显示稳定,编程简单等优点,完全可以

满足本次设计的要求,所以采用LED显示。

1.4系统整体的最终方案

综合考虑以上各个模块的设计方案,nRF24L01无线通信系统的系统结构框图如

下:

图1.1系统结构图

根据功能不同,可以把整个系统分为中心模块、nRF24L01无线通信模块、LED显示模

块。

中心模块为STM32,主要功能是控制nRF24L01无线通信和LED显示。

nRF24L01无线通信模块与中心模块连接。

LED显示模块显示数据。

1.5系统工作流程图

当按下某一键时,STM32控制LED显示相应的数字,同时通过nRF24L01将该数字发

送出去,另一个nRF24L01接收到该数字,经由STM32显示于数码管上。

本系统的工作流程图如下:

中心模块

nRF24L01无线通信模块

LED显示

nRF24L01无线通信模块

中心模块

LED显示

显示

开始

按下键盘

中心模块

LED显示

nRF24L01无线通信模

nRF24L01无线通信模

中心模块

5

图1.2系统工作流程图

1.6关键技术

在本系统中,使用的关键技术如下:

1.基于ARM7的STM32微处理器控制

24L012.4G通信

3.矩阵键盘

显示

二nRF2401无线通信系统的硬件设计

本次设计使用的硬件主要是STM32开发板和nRF24L01无线通信模块,集

成度较高,所以硬件设计的重点就在于nRF24L01与STM32的接口设计。

2.1nRF24L01引脚介绍

图2-1nRF24L01功能框图

nRF24L01功能框图如图3-3所示,从单片机控制的角度来看,我们只需要关注框图右

面的六个控制和数据信号,分别为CSN(PG7)、SCK(PB13)、MISO(PB14)、MOSI(PB15)、

IRQ(PG8)、CE(PG6)。

控制线:

CSN:芯片的片选线,CSN为低电平芯片工作。

SCK:芯片控制的时钟线(SPI时钟)。

CE:芯片的模式控制线。在CSN为低的情况下,CE协同NRF24L01的CONFIG寄

存器共同决定NRF24L01的状态。

IRQ:中断信号。无线通信过程中MCU主要是通过IRQ与NRF24L01进行通信。

数据线:

6

MISO:芯片控制数据线(主机输入,从机输出)。

MOSI:芯片控制数据线(从机输入,主机输出)。

24L01与STM32的接口设计

STM32的串行外设接口(SPI)提供与外部设备进行同步串行通讯的功能,

通过接口可以被设置工作在主模式或者从模式。nRF24L01的控制电路与STM32

控制器的SPI口相连接,以串行方式进行通信以交换信息,实现nRF24L01串行口

高速通信。

该射频芯片与MCU的接口原理图如下图2-2所示。

图2-2nRF24L01与MCU接口原理图

nRF24L01芯片的片选线CS与MCU的PB0相连接、芯片的片选线SCK与

MCU的PA5相连接、中断信号IRQ与MCU的PB1相连接、芯片的模式控制

线CE与MCU的PA4相连接,数据信号引脚MISO、MOSI分别和MCU的PA6

和PA7相连接。

三、nRF2401无线通信系统的软件设计

3.1nRF24L01无线通信分系统的软件结构

无线通信系统的软件模块主要包括,nRF24L01与STM32F103微处理器MCU串行

外设接口(SPI)之间的通信程序,nRF24L01之间的收发程序,矩阵键盘程序,中断程序,

数码管的显示程序以及STM32F103微处理器对收发到数据的处理程序。建立在硬件的基础

上,软件程序的设计完成了对硬件工作的调度和协调,实现了nRF24L01无线通信系统的

通信。如下图3-1所示。

MCU

数码管显示

矩阵键盘

7

SPI

双向通信

SPI

图3-1nRF24L01无线通信系统软件设计结构

3.1.1nRF24L01无线通信模块软件

nRF24L01无线通信模块所要实现的软件功能有:将主机数码管显示的数据发送到从机,

从机进行接收,处理并显示在数码管上。如下图3-2所示

图4-2nRF24L01无线通信模块软件结构

24L01无线通信模块数据发送与接收

首先对MCU进行初始化配置,再对矩阵键盘初始化、数码管初始化、LED初始化、

nRF24L01初始化、SPI初始化,然后检测nRF24L01它是否存在,当不存在时LED灯就会

亮提示24L01CheckFailed!当检测到nRF24L01射频芯片存在后,主机在自定义无线通信协

议下发送数据,从机接收到数据信息后,取出数据,显示在数码管上。nRF24L01无线通

信模块工作流程分别如下图3-3所示

射频芯片

射频芯片

MCU

数码管显示

矩阵键盘

Nrf24L01

线

通过nRF24L01接受数据

显示于数码管

开始

系统时钟初始化、GPIO口初始化、

中断初始化

8

图3-3nRF24L01无线通信模块软件流程图

3.2初始化程序的设计

嵌入式系统在正式工作前,都要进行一些初始化工作。因此在系统启动之初,为了能够

让STM32单片机各项功能合理有序的工作,需要进行一系列的初始化配置。本文系统设计

中初始化程序主要包括微处理器STM32F103开发板的初始化程序、串行外设接口(SPI)

的初始化程序、nRF24L01芯片的初始化程序、矩阵键盘的初始化程序、数码管显示

模块的初始化程序等。其中STM32F103单片机的初始化又包括复位和时钟初始化配

置、GPIO口初始化配置、中断初始化配置。接下来,本节将详细介绍各部分初始化程

序的内容。

3.2.1RCC时钟初始化配置

初始化配置中首先要进行时钟配置,以保证后续程序的正常运行,STM32中,共有五

种时钟源,分别是:

高速内部时钟,频率为8MHz

外部告诉时钟,一般为石英晶振,频率为4-16MHz

nRF24L01初始化、SPI初始化

nRF24L01是否存在

接收数据

处理数据

显示在数码管上

返回

LED灯亮

9

低速内部时钟,频率为40KHz

低速外部时钟,一般为外接的低速晶振,频率为32.768KHz

锁相环倍频输出,时钟输入源可为HSI/2、HSE、HSE/2,倍频范围2~16

倍,最大频率为72MHz

时钟初始化配置的流程如图3-4所示。

3.2.2SPI的初始化配置

STM32F103的串行SPI接口置配置时,设SPI为主,串行时钟在SCK脚产生。配置程

序软件及步骤如下:

1.配置nRF24L01的MOSI、MISO输入输出线和SCLK时钟线分别同CPU的SPI对应的

外设线相连接,即SPI1与SCK(PA5/SPI1_SCK)、MISO(PA6/SPI1_MISO)、MOSI(PA7/

SPI1_MOSI)相连接。

2.通过SPI_CR1寄存器的BR位定义串行时钟波特率分频值为256。

3.选择CPOL和CPHA位,定义数据传输和串行时钟的相位关系,选择了串行时钟的稳态,

时钟悬空低电平,数据捕获于第一个时钟沿。

4.设置DRR位来定义为8位。

5.配置SPI_CR1寄存器的LSBFIRST位定义帧格式。

6.如果NSS引脚需要工作在输入模式,硬件模式中在整个数据帧传输器件应把NSS脚连接

到高电平;在软件模式中,需设置SPI_CR1寄存器的SSM和SSI位,如果NSS引脚工作

在输出模式,则只需设置SSOE位。

7.设置MSTR和SPE位在这个配置中,MOSI脚是数据输出,而MISO脚是数据输入。SPI

串行口初始化流程图如3-5所示:

打开HSE时钟

开始

配置AHB时钟

配置PLL为HSE的9倍频

开启PLL

打开要使用的外设时钟

结束

图3-4RCC时钟初始化流程图

GPIO口配置

设定为双向通信

设定为主模式

设定数据位为8

选择串行时钟的相位

CPOL=0和极性CPHA=1

开始

10

3.2.3NVIC中断配置

为了能让系统程序的执行效率更高,所以必须尽量使用STM32的中断响应函数来取代

传统的循环判断方式。STM32中断种类丰富,数量充足,另有多种复用功能,给系统的整

体设计带来了极大方便。

STM32中断配置以抢占优先级与响应优先级这两项为主要参数,抢占优先级代表了中

断的嵌套关系,抢占优先级较高(数值较小)的中断能够在优先级较低的中断里面嵌套执

行。响应优先级表示了当中断同时发生的时候STM32响应的顺序,数值较小的中断优先响

应。

3.2.4nRF24L01初始化配置

nRF24L01初始化程序包括其与MCU的GPIO的配置、通信频率配置和SPI的初始化

配置等。nRF24L01初始化流程图如图3-6所示:在配置过程中使能APB2外围端口

GPIOB,GPIOA总线时钟,配置GPIO口PB0(CSN)、PA4(CE)推免输出,PB1(IRQ)

上拉输出,输出频率均为50MHz,初始化SPI,使能nRF24L01,SPI片选取消。

3.3nRF24L01无线通信软件设计

3.3.1nRF24L01射频芯片特性

1.射频通道

外围时钟总线配置

GPIO口配置

SPI初始化

使能nRF24L01

SPI片选取消

结束

开始

图3-6nRF24L01初始化流程图

11

nRF24L01的工作频率可选择的范围是2.400GHz到2.483GHz,每个频道的带宽是1Mhz

(1Mbps速率是)或2MHz(2Mbps速率时),射频通道通过寄存器RF_CH设置,设置后

模块的工作中心频率为F

0

=2400+RF

CH

[MHz]

发送方与接收方的射频通道号必须设为一致,当工作在2Mbps模式时,两对收发模块的

RF_CH设置必须小于2才能时两对模块通信互不影响。

2.工作模式

模式PWR_UPPRIM_RXCEFIFO寄存器状态

接收模式111—

发送模式101数据在TXFIFO寄存器中

发送模式101→0停留在发送模式直至数据发送完

待机模式Ⅱ101TXFIFO为空

待机模式Ⅰ1—0无数据传输

掉电模式0———

表3-1nRF24L01工作模式表

nRF24L01可设置为多种工作模式,通过寄存器PWR_UP、PRIM_RX和引脚CE设置,

详见上表3-1:

3.载波检测

nRF24L01具有载波检测功能,通过读取寄存器CD可知道空间中是否有对应频道的射

频信号,CD为高表示有信号,内部CD信号是经过载波的,高电平会保持128us以上。

4.数据通道

nRF24L01配置为接收模式时可以接收最多6个不同地址相同频率的数据,每个数据通

道拥有自己的地址并且可以通过寄存器来进行分别配置。数据通道的开启和关闭是通过寄

存器EN_RXADDR来设置的,低6位每一位控制一个通道,每个数据通道的地址通过寄存

器RX_ADDR_Px来配置(x为0到5,其中RX_ADDR_P0和RX_ADDR_P1是40位,

RX_ADDR_P2到第5通道的第8位到第39位于通道1相同,只有低8位可以设置。

5.数据包处理方式

nRF24L01有两种处理数据包的方式,ShockBurst

TM

模式和增强型ShockBurst

TM模式,

两种方式都是通过SPI接口与微控制器连接。

ShockBurst

TM

接收模式下,当接收到有效的地址和数据时IRQ通知MCU,随后MCU

可将接收到的数据从RXFIFO寄存器中读出。

在ShockBurst

TM

发送模式下,nRF24L01自动生成前导码及CRC校验。数据发送完毕

后IRQ通知MCU。减少了MCU的查询时间,也就意味着减少了MCU的工作量,同时减

少了软件的开发时间。nRF24L01内部有三个不同的RXFIFO寄存器(6个通道共享此寄存

器)和三个不同的TXFIFO寄存器。在掉电模式下、待机模式下和数据传输的过程中MCU

可以随时访问FIFO寄存器。

本文系统设计中使用的是增强型的ShockBurst

TM

模式,其可以同时控制应答及重发功

12

能而无需增加MCU工作量。发送方要求终端设备在接收到数据后有应答信号,以便于发送

方检测有无数据丢失,一旦数据丢失则通过重新发送功能将丢失的数据恢复。在增强型

ShockBurst

TM

下,这一切都由nRF24lL01芯片自动完成。

6.数据包格式

增强型ShockBurst

TM

模式下的数据包格式如表2:

前导码地址(3~5字节)9位(标志位)数据(1~32字节)CRC校验(0/1/2)

表2增强型ShockBurst

TM

模式下的数据包格式

ShockBurst

TM

模式下的数据包格式如表3。

前导码地址(3~5字节)数据(1~32字节)CRC校验(0/1/2)

表3ShockBurst

TM

模式下的数据包格式

前导码用来检测0和1,芯片在接收模式下去除前导码,在发送模式下加入前导码。

地址为接收地址,地址宽度可以是3、4或5字节宽度,地址可以对接收通道及发送通

道分别进行配置,从接收的数据包中自动去除地址。

标志位中的其中两位是PID,其他七位保留用作将来与其它产品相兼容。

PID数据包识别其中两位是用来每当接收到新的数据包后加1。

PID的作用是识别接收到的数据时新数据包还是重发的数据包。

(1)接收方

接收方对新接收数据包的PID值与上一包进行比较如果PID值不同则认为接收的数据包

是新数据包如果PID值与上一包相同则新接收的数据包有可能与前一包相同,接收方必须

确认CRC值是否相等如果CRC值与前一包数据的CRC值相等则认为是同一包数据并将其

舍弃。

(2)发送方

每发送一包数据则发送方的PID值加1。

开始

来自微处理

器新数据

包?

结束

增加PID的

来自微处理

器新数据包

丢弃重复数

据包

开始

结束

PID等于

lastPID的

值?

CRC等

LastCRC?

图3-7PID生成和检测

13

数据字段的宽度为1到32字节,发送方与接收方必须一致,接收到数据通道有效数据

宽度通过RX_PW_Px寄存器设置,x为0到5。

CRC校验是可选的,寄存器EN_CRC用来使能CRC,寄存器CRCO用于设置CRC模

式,有8位CRC校验的多项式X

8

+X

2

+X+1,16位CRC校验的多项式是X

16

+X

12

+X

5

+1,

发送方与接收方也必须一致,CRC计算范围包括整个数据包:地址、PID和有效数据等。

若CRC校验错误则不会接收数据包。

3.3.2SPI的读写程序

图3-8SPI程序时序图

1.数据发送过程

当一字节写进发送缓冲器时,发送过程开始。在发送第一个数据位时,数据字被并行地

(通过内部总线)传入以为寄存器,而后串行地溢出到MOSI脚上;MSB在线还是LSB在

线,取决于SPI_CR1寄存器中的LSBFIRST位,数据从发送缓冲器传输到移位寄存器时TXE

标志将被置位,如果设置SPI_CR1寄存器中的TXEIE位,将产生中断。

SPI总线读写操作流程图3-9如下:

发送一字节数据启动

SPI数据传输

等待数据发送结束

(SPIF将产生中断)

读出从机发送的数据

或释放从机

设置为SPI主机(设置

SPI_CR1寄存器)

选择从机

开始

14

2.数据接收过程

对于接收器来说,当数据传输完成时,移位寄存器里的数据传送到接收缓冲器,并且

RXNE标志被置位。如果SPI_CR2寄存器中的RXEIE位被置位,则产生中断。在最后采样

时钟沿,RXNE位被设置,在移位寄存器中接收到的数据字被传送到接受缓冲器,读SPI_DR

寄存器时,SPIU设备返回接受到的数据字,读SPI_DR寄存器将清除RXNE位。

3.3.3nRF24L01发送程序设计

发射数据时,首先将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有

效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连

续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延

迟130μs后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,

接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,

则认为此次通信成功,TX_DS置高,同时TX_PLD从TXFIFO中清除;若未收到应答,

则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,

TX_FIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,

通知MCU。最后发射成功时,清STATUS中断标志位进入下一次发射。nRF24L01发送时

序图和流程图分别如下图3-10和3-11所示:

图3-10nRF24L01发送数据时序图

nRF24L01初始

配置为发送模

延迟20us

置CE为低

写Payload

置CE为高

清STATUS中断标

志位

15

3.3.4nRF24L01接收程序设计

接收数据时,首先将nRF24L01配置为接收模式,接着延迟130μs进入接收

状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储

在RXFIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU

去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成

功时,清STATUS中断标志位,等待接收下一组信号。nRF24L01接收数据时序图与流程图

分别如下图3-12和3-13所示:

图3-12nRF24L01接收数据时序图

nRF24L01初始化

配置为接收模式

延迟130us

置CE为高

16

17

四、nRF24L01无线通信系统的调试与实现

4.1nRF24L01无线通信系统调试

4.1.1硬件调试

图4-1nRF2401无线通信调试图

在实物连接完成后,对线路进行检查。看nRF2401的电源是否正确连接在了STM32

开发板的3.3V电源上,地线是否正确连接在开发板地线,然后其他6脚分别和PA4~PA7

和PB0~PB1相连接。

4.1.2软件调试

软件的调试主要是在Keil上进行,初步编译完成后,生成相关的.hex文件,将hex烧入

STM32开发板中,检查软件是否实现了自己想要的功能。检测程序功能效果,再经过编译

修改,最终得到理想的程序代码。软件调试建立在硬件调试成功的基础之上。

4.2nRF2401无线通信系统总体调试

1.按下矩阵键盘,观察数码管是否正确显示对应的数值。

2.观察接收端是否同步显示对应数值。

18

五、总结

5.1nRF2401无线通信系统的功能实现

本文设计了一个无线通信系统系统,以低成本、高性能和高可靠性为目标,有针对性

的选择硬件芯片型号,反复设计与调试软件程序,最终实现数据的收发,本系统成功实现

了预计的功能。本系统的实物结构如图5-1所示。

图5-1nRF2401无线通信系统实物图

5.2nRF2401无线通信系统功能展示

5.2.1发送数据

按下发送方的3所对应的按键,并按下发送键,接受方显示对应的数字。

19

图5-2发送数据

5.2.2接受数据

再由原接收方发送数据,原发送方接受数据。

20

图5-3接受数据

5.2.3最远有效通信距离

经测试,本系统最远有效通信距离可达5.5米。

5.3结论

通过nRF2401的点对点相结合的无线通信,nRF2401无线通信系统实现了数据的收发,

并在数码管上将数据展现给用户。通过现场测试与应用证明了该系统的可用性

=====WORD完整版----可编辑----专业资料分享=====

----完整版学习资料分享----

附录

部分程序源代码

主控函数

intmain(void)

{

u8t,n1,i;

u8tx_buf[33];

u8rx_buf[33];

Stm32_Clock_Init(9);//系统时钟设置

delay_init(72);//延时初始化

exti_init();

LED_Init();//初始化与LED连接的硬件接口

uart_init(72,9600);//串口初始化为9600

KEY_Init();//初始化与按键连接的硬件接口

Matrix_Keyboard_Init();

SEG_Init();

NRF24L01_Init();

GPIOC->ODR|=0X0f;

GPIOD->ODR|=0XFf;

while(NRF24L01_Check())//检测不到24L01

{

GPIOC->ODR=0Xf0;

}

while(1)

{

RX_Mode();

while(NRF24L01_RxPacket(rx_buf))

{

i=KEY_Scan();

if(i==1)//按了KEY0则变成发送模式,发送对应数据,发送完后

变成接收模式

{

TX_Mode();//发送模式

LED0=0;

delay_ms(100);

LED0=1;

delay_ms(100);

NRF24L01_TxPacket(tx_buf);//发送命令数据

=====WORD完整版----可编辑----专业资料分享=====

----完整版学习资料分享----

break;//退出最近的循环,从而变回接收模式

}

while(!LED2)

{

//LED3=0;

//delay_ms(100);

//LED3=1;

//delay_ms(100);

t=Matrix_Keyboard_Scan();//得到键值

Show_Num(t);

switch(t)

{

ca1:tx_buf[0]=0X01;;break;

ca2:tx_buf[0]=0X02;;break;

ca3:tx_buf[0]=0X03;;break;

ca4:tx_buf[0]=0X04;;break;

ca5:tx_buf[0]=0X05;;break;

ca6:tx_buf[0]=0X06;;break;

ca7:tx_buf[0]=0X07;;break;

ca8:tx_buf[0]=0X08;;break;

ca9:tx_buf[0]=0X09;;break;

ca10:tx_buf[0]=0X0a;;break;

ca11:tx_buf[0]=0X0b;;break;

ca12:tx_buf[0]=0X0c;;break;

ca13:tx_buf[0]=0X0d;;break;

ca14:tx_buf[0]=0X0e;;break;

ca15:tx_buf[0]=0X0f;;break;

ca16:tx_buf[0]=0X10;;break;

}break;

}

}

switch(rx_buf[0])

{

ca0X01:Show_Num(1);break;

ca0X02:Show_Num(2);break;

ca0X03:Show_Num(3);break;

ca0X04:Show_Num(4);break;

ca0X05:Show_Num(5);break;

ca0X06:Show_Num(6);break;

ca0X07:Show_Num(7);break;

ca0X08:Show_Num(8);break;

ca0X09:Show_Num(9);break;

ca0X0a:Show_Num(10);break;

ca0X0b:Show_Num(11);break;

ca0X0c:Show_Num(12);break;

=====WORD完整版----可编辑----专业资料分享=====

----完整版学习资料分享----

ca0X0d:Show_Num(13);break;

ca0X0e:Show_Num(14);break;

ca0X0f:Show_Num(15);break;

ca0X10:Show_Num(16);rx_buf[0]=0;break;

}

参考文献:

[1]赵海,赵杰,刘铮,等.一种无线传感器网络节点的设计与实现[J].东北大学学报:自然科学

版,2009,30(6):809-812

[2]王秀梅.低功耗2.4GHz无线通信分系统的设计与实现[J].中国数据通信,2004(11):57—61

[3]李文忠,段朝玉.短距离无线数据通信[M].北京:北京航空航天大学出版社,2006.

本文发布于:2023-02-04 02:16:22,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/88/185592.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:nrf2401
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图