当前位置:文档之家› 奋斗STM32V3版 2.4G无线通信例程

奋斗STM32V3版 2.4G无线通信例程

奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验NRF24L01+转 USB 虚拟串口实验实验平台:奋斗版STM32开发板V3 实验内容:板子通过USB加电后,先向串口1输出一串测试数据,然后USB被PC识 别出来,虚拟出一个串口号给这个USB设备,此时可以通过在PC端的串口助手类 软件选择该串口号。

进入串口软件界面,可以通过软件无线收发一帧长度最长 为32字节的数据。

该例程可以和V3及MINI板的NRF24L01 UCGUI例程配合使用, 也可以与同样例程的MINI、V3、TINY板配合使用。

预先需要掌握的知识 2.4G通信模块NRF24L01 1. 产品特性2.4GHz 全球开放ISM 频段,最大0dBm 发射功率,免许可证使用 支持六路通道的数据接收 低工作电压:1.9 1.9~3.6V 低电压工作 高速率:2Mbps,由于空中传输时间很短,极大的降低了无线传输中的碰撞现象(软件设置1Mbps或者2Mbps的空中传输速率) 多频点:125 频点,满足多点通信和跳频通信需要 超小型:内置2.4GHz天线,体积小巧,15x29mm(包括天线) 低功耗:当工作在应答模式通信时,快速的空中传输及启动时间,极大的降低了电流消耗。

低应用成本:NRF24L01 集成了所有与RF协议相关的高速信号处理部分,比如:自动重发丢失数据包和自动产生应答信号等, NRF24L01的SPI接口可以利用单片机的硬件SPI口连接或用单片机I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口, 便于使用低成本单片机。

便于开发:由于链路层完全集成在模块上,非常便于开发。

自动重发功能,自动检测和重发丢失的数据包,重发时间及重发次数可软件控制 自动存储未收到应答信号的数据包 自动应答功能,在收到有效数据后,模块自动发送应答信号,无须另行编程 载波检测—固定频率检测 内置硬件CRC 检错和点对多点通信地址控制 数据包传输错误计数器及载波检测功能可用于跳频设置 可同时设置六路接收通道地址,可有选择性的打开接收通道 标准插针Dip2.54MM 间距接口,便于嵌入式应用2.基本电气特性淘宝店铺:1奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验3. 引脚定义:4.工作方式NRF2401有工作模式有四种: 收发模式 配置模式 空闲模式 关机模式 工作模式由CE 和寄存器内部PWR_UP、PRIM_RX 共同控制,见下表:淘宝店铺:2奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验4.1 收发模式收发模式有Enhanced ShockBurstTM收发模式、ShockBurstTM收发模式和直接收发模式三种,收发模式由器件配置字决定,具体 配置将在器件配置部分详细介绍。

4.1.1 Enhanced ShockBurstTM收发模式Enhanced ShockBurstTM收发模式下,使用片内的先入先出堆栈区,数据低速从微控制 器送入,但高速(1Mbps)发射,这样可以尽量节能,因此,使用低速的微控制器也能得到很高的射频数据发射速率。

与射频协议 相关的所有高速信号处理都在片内进行, 这种做法有三大好处: 尽量节能; 低的系统费用(低速微处理器也能进行高速射频发射); 数据在空中停留时间短,抗干扰性高。

Enhanced ShockBurstTM技术同时也减小了整个系统的平均工作电流。

在Enhanced ShockBurstTM收发模式下, NRF24L01自动处理字头和CRC校验码。

在接收数据时,自动把字头和CRC校验码移去。

在发送数据时, 自动加上字头和CRC校验码,在发送模式下,置CE为高,至少10us,将时发送过程完成后。

4.1.1.1 Enhanced ShockBurstTM发射流程 A. 把接收机的地址和要发送的数据按时序送入NRF24L01; B. 配置CONFIG寄存器,使之进入发送模式。

C. 微控制器把CE置高(至少10us),激发NRF24L01进行Enhanced ShockBurstTM发射; D. N24L01的Enhanced ShockBurstTM发射(1) 给射频前端供电; (2)射频数据打包(加字头、CRC校验码); (3) 高速发射数据 包; (4)发射完成,NRF24L01进入空闲状态。

4.1.1.2 Enhanced ShockBurstTM接收流程 A. 配置本机地址和要接收的数据包大小; B. 配置CONFIG寄存器,使之进入接收模式,把CE置高。

C. 130us后,NRF24L01进入监视状态,等待数据包的到来; D.当接收到正确的数据包(正确的地址和CRC校验码),NRF2401自动把字头、地址和CRC校验位移去; E. NRF24L01通过把STATUS寄存器的RX_DR置位(STATUS一般引起微控制器中断)通知微控制器; F. 微控制器把数据从NewMsg_RF2401 读出; G. 所有数据读取完毕后,可以清除STATUS寄存器。

NRF2401可以进入四种主要的模式之一。

4.1.2 ShockBurstTM收发模式 ShockBurstTM收发模式可以与Nrf2401a,02,E1及E2兼容。

4.2 空闲模式NRF24L01的空闲模式是为了减小平均工作电流而设计,其最大的优点是,实现节能的同时,缩短芯片的起动时间。

在空闲模式 下,部分片内晶振仍在工作,此时的工作电流跟外部晶振的频率有关。

4.3 关机模式在关机模式下,为了得到最小的工作电流,一般此时的工作电流为900nA左右。

关机模式下,配置字的内容也会被保持在NRF2401 片内,这是该模式与断电状态最大的区别。

5、NRF24L01 的SPI 配置 SPI 指令设置用于SPI 接口的常用命令见下表。

当CSN 为低时,SPI 接口开始等待一条指令,任何一条新指令均由CSN 的由高 到低的转换开始多机通信框图淘宝店铺:3奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验串行接口指令设置淘宝店铺:4奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验淘宝店铺:5奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验淘宝店铺:6奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验淘宝店铺:7奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验淘宝店铺:8奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验淘宝店铺:9奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验淘宝店铺:10奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验应用实例设计要求板子通过USB加电后,先向串口1输出一串测试数据,然后USB被PC设别出来, 虚拟出一个串口号给这个USB设备,此时可以通过在PC端的串口助手类软件选择 该串口号。

进入串口软件界面,可以通过软件无线收发一帧长度最长为32字节 的数据。

5.2 硬件电路设计需要将NRF24L01+插入V3Y板上的XS12接口,XS12的接口定义了SPI2的标示, 板子通过USB线插入到PC的USB接口上,第一次 实验的话,需要运行光盘内资料目录下的VCPDriver_V1.1_Setup.exe来安装USB虚拟串口驱动。

V3与NRF24L01+的连接关系 V3-XS12 NRF24L01+ PIN4-PB0: SPI2 CS------PIN4 PIN5-PB13:SPI2 SCK-----PIN5 PIN7-PB14: SPI2 MISO----PIN7 PIN6-PB15: SPI2 MOSI----PIN6 PIN3-PB1 : NRF24L01 CE--PIN3 PIN8-PA0 : NRF24L01 IRQ-PIN8 PIN1-GND : 地 PIN1 PIN2-3V : 3.3V PIN25.3 软件程序设计根据任务要求,程序内容主要包括: 1. 2. 3. 4. 5. 初始化串口 初始化USB 初始化SPI2及NRF24L01接口 中断源配置 各通信函数的编写。

本例程完成了以下功能: (1) 2.4GNRF24L01+与USB虚拟串口互转 (2) 2.4GNRF24L01+转RS-232串口1 (3) USB虚拟串口与RS-232串口1互转 整个工程包含5类源文件:淘宝店铺:11奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验startup--startup_stm32f10x_hd.s由于奋斗板采用的是STM32F103高容量存储器芯片,因此采用STM32标准库自带的中容量存储器芯片启动代码,这个文件已经配置好了初始状态,以及中断向量表。

可以直接在工程里使用,如果你在以后的应用 中采用了中存储器或者小存储器STM32芯片,可以将启动代码换为startup_stm32f10x_md.s startup_stm32f10x_ld.s。

fwlib--stm32f10x_gpio.c ST公司的标准库,包含了关于对通用IO口设置的函数。

stm32f10x_rcc.c 关于对系统时钟设置的函数。

stm32f10x_spi.c ST公司的标准库,包含了关于和SPI相关的函数。

stm32f10x_exti.c ST公司的标准库,包含了和EXTI外部中断相关的函数。

ST公司的标准库,包含了 或者stm32f10x_usart.c ST公司的标准库,包含了关于对USART设置的函数。

Misc.c ST公司的标准库,包含了关于中断设置的函数。

usb-fs-device-组项下的C文件都是和全速USB有关系的库函数。

CMSYS—是关于CORETEX-M3平台的系统函数及定义 USER—main.c NRF24L01.c hw_config.c 例程的主函数。

包含和NRF24L01相关的函数 包含和硬件平台有关系的函数 中断服务程序stm32f10x_it.c5.4程序流程在main()函数里,顺序执行系统时钟配置及各外设的初始化操作。

淘宝店铺:12奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验void USART_Init1(USART_TypeDef* USART1)定义了串口1的初始化,将端口PA9、PA10复用为串口1的发和 收,数据格式配置以下函数所设置的式样。

相关主题