奋斗STM32开发板Tiny NRF24L01转USB虚拟串口例程手册
奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验NRF24L01+转 USB 虚拟串口实验实验平台:奋斗版STM32开发板Tiny 实验内容:板子通过USB加电后,先向串口1输出一串测试数据,然后USB被PC识 别出来,虚拟出一个串口号给这个USB设备,此时可以通过在PC端的串口助手类 软件选择该串口号。
进入串口软件界面,可以通过软件无线收发一帧长度最长 为32字节的数据。
该例程可以和V3及MINI板的NRF24L01 UCGUI例程配合使用。
预先需要掌握的知识 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 虚拟串口实验5. 应用实例5.1. 设计要求板子通过USB加电后,先向串口1输出一串测试数据,然后USB被PC设别出来, 虚拟出一个串口号给这个USB设备,此时可以通过在PC端的串口助手类软件选择 该串口号。
进入串口软件界面,可以通过软件无线收发一帧长度最长为32字节 的数据。
5.2 硬件电路设计需要将NRF24L01+插入TINY板上的XS5接口,XS5的接口定义了SPI的标示, 板子通过USB线插入到PC的USB接口上,第一次实 验的话,需要运行光盘内资料目录下的VCPDriver_V1.1_Setup.exe来安装USB虚拟串口驱动。
Tiny与NRF24L01+的连接关系 TINY NRF24L01 PIN4-PB12: 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虚拟串口互转淘宝店铺:11奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验(2) 2.4GNRF24L01+转RS-232串口1 (3) USB虚拟串口与RS-232串口1互转 整个工程包含5类源文件:startup--startup_stm32f10x_md.s由于奋斗板采用的是STM32F103中容量存储器芯片,因此采用STM32标准库自带的中容量存储器芯片启动代码,这个文件已经配置好了初始状态,以及中断向量表。
可以直接在工程里使用,如果你在以后的应用 中采用了大存储器或者小存储器STM32芯片,可以将启动代码换为startup_stm32f10x_hd.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的发和 收,数据格式配置以下函数所设置的式样。
arm-linux下usb转串口移植手册
arm-linux下usb转串口移植手册:讲述在嵌入式平台上,移植usb转串口的步骤:1、配置Kernel2、文件系统配置等。
Kernel:在配置内核时:加入usb转串口的支持、加入usb转串口器件的支持。
不同厂家的usb转串口工具需要的驱动可能不一样。
Device Drivers --->USB support --->--- USB port driversUSB Serial Converter support ---><*> USB Serial Converter support[*] USB Serial Console device support[*] USB Generic Serial drivert< > USB AIRcable Bluetooth Dongle Driver (EXPERIMENTAL)<*> USB FTDI Single Port Serial Driver (EXPERIMENTAL)本次实验才用的是FTDI的usb转串口工具在配置Kernel时,还可以加入对其他厂家的驱动支持。
文件系统:1、在/dev目录下建立设备文件/dev/ttyUSB0mknod /dev/ttyUSB0 c 188 02、在运行/sbin/getty登陆命令之前要先设置好:usb转串口对应端口的波特率、停止位等。
int usb_to_serial_init(viod){iUSBTORS232 = open( "/dev/ttyUSB0", O_RDWR);if (iUSBTORS232 iRS232 < 0){printf("Can't open device dev/ttyUSB00");return -1;}set_speed(iUSBTORS232 iRS232,BAUDRA TE);set_Parity(iUSBTORS232 iRS232,8,1,'n');close(iRS232);}3、在/etc/inittab 加入如下命令。
NRFANDUSB通信模块用户手册
NRFANDUSB通信模块用户手册NRF AND USB通信模块用户手册概述:NRF AND USB通信模块是为方便计算机利用NRF24L01无线收发模块实现无线通信而设计的一款转接口模块,使用此模块用户只需通过简单设置便可直接利用计算机串口(虚拟串口)进行无线数据收发,如此可省去设计SPI转接口及配置寄存器的工作,提高用户开发、学习效率。
NRF AND USB通信模块中NRF24L01以MCU、PL2303为转接桥梁连接至计算机USB端口,通过上位机E控制台可方便修改其通信参数,修改成功后参数将保存至MCU EEPROM 中,模块上电启动时MCU将自动加载并配置该参数。
NRF AND USB通信模块具有自动应答机制、自动重发机制、5字节可设置通信地址、1200-57600bps可选波特率、1-32字节通信数据宽度等特点,为用户提供灵活可靠的一对一无线通信模式。
使用说明:1.安装在使用NRF AND USB通信模块之前用户需在目标计算机中安装PL2303驱动程序,驱动程序可到网上下载。
驱动程序安装完成后打开软件压缩包双击“E控制台.msi”安装“E控制台”,“E控制台”是基于.NET平台开发的桌面应用程序,故安装“E控制台”需framwork4.0组件支持,若目标计算机未安装此组件请先将软件压缩包中的framwork4.0组件安装至目标计算机。
软件安装环境:Window XP/Vista/Windows7,推荐Windows7。
2.设置初次使用NRF AND USB通信模块或更改其通信方式时需对其参数进行设置,启动“E控制台”选中“设置”页。
其参数描述如下:参数设置须与目标模块对应,确认无误后打开端口然后点击确认设置,若设置成功将出现提示文字。
设置成功后软件将保存设置信息并在以后启动软件时自动加载,但只有部分显示在参数设置框上,此信息不影响“设置”页参数值,仅在“通信”和“控制”页起作用。
3.通信参数设置完成后可通过“通信”页进行联调,数据类型可选择HEX型(16进制,可加空格分隔)或字符型,其数据宽度应等于最近一次参数设置成功时所设的宽度,若发送数据宽度超出所设数据宽度则去掉尾部,若发送数据宽度小于所设数据宽度则HEX型补“0”字符型补“空格”。
关于使用STM32硬件SPI驱动NRF24L01
关于使用STM32硬件SPI驱动NRF24L01+ 今天是大年初一总算有时间做点想做很久的事了,说到NRF2401可能很多电子爱好者都有用过或是软件模拟驱动又或是用单片机自带的硬件SPI来驱动,但不管是用哪种方法来驱动我想都在调试方面耗费了不少的时间(可能那些所谓的电子工程师不会出现这种情况吧!)网上的资料确实很多,但大多数都并没有经过发贴人认真测试过,有的只是理论上可以行的通但上机测试只能说是拿回来给他修改。
本文作者也是经过无助的多少天才算是调试成功了(基于STM32硬件SPI,软件模拟的以前用51单片机已经调通了今天就不准备再拿来讲了,当然如果以后有朋友有需要也可以告诉我,我也可以重新写一篇关于51的驱动的只要有时间是没有问题的。
)因为我用的是STM32F103C8T6的系统而且是刚接触不知道别的系统和我用的这个系统有多大的差别所以我不会整个代码全贴上来就完事了,我将就着重思路配合代码写出来,这样对于刚接触单片机的朋友会有很好的作用,但是还有一点请大家要原谅,可能会存在一些说的不好的地方,毕竟我没有经过正规渠道系统地学习过电子知识,对于前辈来说存在这样那样的问题不可避免的,在此也希望大家指教!贴个图先:NRF2401+的资料大家上网查一下,我输字的速度有点不好说!下面我来说一下整个调试流程吧1.先把STM32串口一调通(因为我不知道STM32 I/O口不知可不可以像51那样并口输出数据,如果可以那就更方便啰)。
2.与NRF2401建立起通信(这个才是问题的关键);3.利用读NRF2401的一个状态寄存器(STATUS)的值并通过串口发送到PC后通过51下载软件的串口助手显示出来(如果你用液晶来调试那你太有才了,你液晶和NRF2401存在牵连可能就会给寻找不成功的原因造成困难,而且还有不少硬件工作要做)在这说一下本文只调试发送程序,致于接收只改一个程序参数就行了。
我们先来调试STM32F103C8T6的串口1吧(也就是USART1)!它是STM32F103C8T6的片上外设之一,使用它时相对来说简单了不少。
NRF24L01详细教程
NRF24L01详细教程近来课程的项目需要用到NRF24L01,用来做基本的收发,虽然资料拿到不少,但是,很多资料并不是很清晰、所带的例程并不够简洁或有不少冗余的部分,再加上对应的中文数据手册部分没翻译出来,翻译出来的不够有条理,很多地方模糊,甚至关键的地方看一两次还看不出来,导致了在学NRF24L01时花费了较多时间,所以,学完NRF24L01后,萌生了写个尽量清晰的教程的想法。
教程中的例程虽然是库开发方式,但基本都是最底层的操作才用到库函数譬如发一字节数据、GPIO置位等,虽然用的STM32,但我在看其他板子的例程时,发觉内容与流程都是差不多的,只是不同板引脚不同所导致的引脚配置的不同,不管用什么方式开发,用什么芯片,了解清楚NRF24L01如何配置,了解清楚其收发流程,基本上就会开发了,所以此文档虽然写的是以STM32为例,但看完此文档用NRF24L01基本也没什么大问题了。
教程说明:这教程是基于STMF103ZET6的,是野火的板子,例程也是从野火提供修改例程得来,用的是库开发的方式。
学习NRF24L01的步骤:1.学习SPI,SPI就是NRF24L01传送数据到单片机的一种协议,类似于USB,当然USB还是比较有难度的。
2.了解NRF24L01相关寄存器,结合中文数据手册了解NRF24L01的基本配置,收发数据前后的操作(如何启动发送接收、寄存器清空、标志位重置等)。
3.分析具体代码SPI的简介:具体的SPI教程,大家可以去野火的教程进行学习,在此只是简略介绍一下,SPI是一种一对多协议:一个主机(MCU)对应对多个从机,可以分时与多个从机通讯SPI 总线包含4 条总线,分别为SS、SCK、MOSI、MISO,其含义分别为SS:Slave Select,片选信号线,主机借此信号线选择一个从机,低电平有效。
MOSI:Master Output,Slave Input,主机数据从此线输出到从机,数据方向从主机到从机。
奋斗STM32开发板串口1中断例程详解及实验手册
淘宝店铺:
8
奋斗版 STM32 开发板例程详解———串口 1 中断实验
应答起始位。发送和接收由一共用的波特率发生器驱动,当发送器和接收器的使能位分别置 位时,分别为其产生时钟。每个功能块的详细资料如下给出。 图2 字长设置
单字节通信
清零TXE 位总是通过对数据寄存器的写操作来完成的。TXE 位由硬件来设置,它表明: ● 数据已经从TDR 移送到移位寄存器,数据发送已经开始 ● TDR 寄存器被清空 ● 下一个数据可以被写进USART_DR 寄存器而不会覆盖先前的数据如果TXEIE 位被设置,此 标志将产生一个中断。如果此时USART 正在发送数据,对USART_DR 寄存器的写操作把数据 存进TDR 寄存器,并在当前传输结束时把该数据复制进移位寄存器。如果此时USART 没有在 发送数据,处于空闲状态,对USART_DR 寄存器的写操作直接把数据放进移位寄存器,数据 传输开始,TXE 位立即被置起。当一帧发送完成时(停止位发送后),TC 位被置起,并且 如果USART_CR1 寄存器中的TCIE 位被置起时,中断产生。先读一下USART_SR 寄存器,再写 一下USART_DR 寄存器,可以完成对TC 位的清零。 注意: TC 位也可以通过对它软件写0 来清除。此清零方式只在多缓冲器通信模式 下推荐使用。
断开符号
淘宝店铺:
10
奋斗版 STM32 开发板例程详解———串口 1 中断实验
置位SBK位可发送一个断开符号。断开帧长度取决M位(见图166)。如果SBK位被置1,在完成 当前数据发送后,将在TX线上发送一个断开符号。断开字符发送完成时(在断开符号的停止 位时)SBK被硬件复位。USART在最后一个断开帧的结束处插入一逻辑1 位,以保证能识别下 一帧的起始位。 注意:如果在开始发送断开帧之前,软件又复位了SBK 位,断开符号将不被发送。如果要发 送两个连续的断开帧,SBK 位应该在前一个断开符号的停止位之后置起。
nRF24LU1快速开发系统使用手册
nRF24LU1-Quick-Dev 快速开发系统使用手册使用nRF24LU1-Quick-Dev 前请认真阅读本手册说明以及nRF24LU1的数据手册为了便于用户开发应用先进的nRF24LU1 USB+8051 Flash MCU+高速2Mbps2.4GHz 无线芯片,迅通科技提供nRF24LU1快速开发系统。
nRF24LU1开发系统包括两个无线高速USB 模块、两个开发板,MINI USB Dongle ,详细源代码,原理图,资料光盘,开发板上有按键和指示灯等,加电即可使用,可完成USB HID 协议和无线数据高速传输的全部功能,可方便地进行性能以及距离评测,并迅速掌握nRF24LU1的USB 设备开发以及高速无线通信编程和协议的设计。
时间 缩短您的开发时间,建立您对RF 产品开发的信心; 风险 接近实用的评估板,方便验证和改进,零风险;费用 只需不到一个工程师一个月的薪水或您预算内很小一部分 市场 可对多种产品及应用进行验证,实现平台式的验证与应用资料 技术资料全,上手快,可以使您立刻进入与世界同步的无线设计领域;1、 n RF24LU1-Quick-Dev 快速开发系统的安装示意图:2、nRF24LU1-Quick-Dev 开发板的安装:1、按照安装示意图,将nRF24LU1无线模块安装在开发板上。
请注意无线模块的安装方向!2、开发板上跳线帽接VBUS 端,nRF24LU1无线模块上跳线接帽VBAT 端。
3、开发板采用USB 端口供电,用USB 连线将开发板与PC 机的USB 端口连接即可工作。
3、nRF24LU1-Quick-Dev 开发板演示程序的使用:1、源代码说明程序源代码在 \ SOURCE CODE 目录上,程序分为USB DONGLE 部分和WDP KEYBOARD 部分。
该程序的特点是内嵌“WIRELESS DESKTOP PROTOCOL (简称WDP )”的协议,具有抗干扰、可靠、省电等优点,实用性强,可应用于产品设计。
nRF24LE1中文数据手册
2
nRF24LE1 nRF24LU1 模块 多功能编程器 RMB88
8
nRF24LE1 nRF24LU1 模块 多功能编程器 RMB88
1 Mbps 速率下非重叠频道间隔为 1 MHz 2 Mbps 速率下非重叠频道间隔为 2 MHz 增加型突发模式 1-32 字节动态有效载荷长度(即用户要发的数据长度可以 1-32 字节) 包自动处理(封包/解包) 自动包传输处理(自动应答确认,自动重传) 6 个数据通道可用于 6:1 星型网络
当被过滤后的射频信号高于-64 dBm 时,PRD 寄存器被置高。PRD 被置高前射频信号必须 维持至少 40us
发送模式 通过置高 POR_UP 位,置低 PRIM_RX 位,TX FIFO 不为空,rfce 位置高 10us 后置低进入 发送模式
收发器将保持在发送模式直到数据包发送完毕。如果此时 rfce=0,收发器返回待机模式 1.如 果 rfce=1,且 TX FIFO 不为空则收发器继续保留在发送模式且发送下一包数据。如果 TX FIFO 为空,收发器进入待机模式 2. PLL 工作于开环模式。每次不要将收发器置于发送模式 超过 4ms.如果开启了 Enhanced ShockBurst 特性,收发器永远不会在发送模式超过 4ms.
dianzirentaobaocomnrf24le1nrf24lu1模块多功能编程器rmb8818pwmcon0xb20x00pwm配置寄存器pwmdc00xa10x00pwm通道0周期配置pwmdc10xa20x00pwm通道1周期配置pwrdwn0xa40x00掉电控制rfcon0xe80x02射频收发器控制寄存器rngctl0xd60x00随机数发生器控制寄存器rngdat0xd70x00随机数发生器数据寄存器rstreas0xrstreas0xb10x00复位源寄存器rtc2cmp00xb40xffrtc2比较值寄存器0rt2comp10xb50xffrtc2比较值寄存器1rt2con0xb30x00rtc2配置寄存器rt2cpt000xb60x00rtc2捕获值寄存器00rt2cpt010xab0x00rtc2捕获值寄存器01rt2cpt100xac0x00rtc2捕获值寄存器10s0buf0x990x00串口0数据缓冲寄存器s0con0x980x00串口0控制寄存器s0relh0xba0x03串口0重载寄存器高字节s0rell0xaa0xd9串口0重载寄存器低字节sp0x810x07堆栈指针寄存器spimcon00xfc0x02主spi配置寄存器0spimcon10xfd0x0f主spi配置寄存器1spimdat0xff0x00主spi数据寄存器spimstat0xfe0x03主spi状态寄存器spircon00xe40x01射频收发器主spi配置寄存器0spircon10xe50x0f射频收发器主spi配置寄存器1spirdat0xe70x00射频收发器主spi数据寄存器spirstat0xe60x03射频收发器主spi状态寄存器spiscon00xbc0xf0从spi配置寄存器0spisdat0xbf0x00从spi数据寄存器spisstat0xbe0x03从spi状态寄存器t2con0xc80x00定时器2控制寄存器tcon0x880x00定时计数器控制寄存器th00x8c0x00定时器0高字节th10x8d0x00定时器1高字节th20xcd0x00定时器2高字节tl00x8a0x00定时器0低字节tl10x8b0x00定时器1低字节tl20xcc0x00定时器2低字节tmod0x890x00定时器模式寄存器w2con00xe20x802wire配置寄存器0w2con10xe10x002wir
用DFUSE软件通过USB接口在线编程STM32
1.解压DFUSE.rar。
2.安装DfuSe_Demo_V2.2.1_Setup.exe。
3.打开G:\DFUSE\STM32_USB-DfuFs-Device_Upgrade\Project\usb_Device_Firmware _Upgrade\RVMDK\STM32-FD-dfu.uv2编译程序,用Jlink仿真器或者串口将程序下载到奋斗版STM开发板中。
4.用usb线连接奋斗版STM32板,出现发现新硬件。
5.安装驱动,如果第二步默认安装的话,选择驱动C:\ProgramFiles\STMicroelectronics\DfuSe\Driver\stdfu.inf6.打开STM32奋斗板-LED闪烁工程,编译选项设置device 选择stm32f103VET6 target 在IROM1 start处设置0x8003000 ,设置好编译。
7.打开C:\Program Files\STMicroelectronics\DfuSe\BIN\dfufilemgr.exe 选择 I want to generate a dfu file from s19 ,hex or bin,然后选择s19 or hex 选择STM32奋斗板-LED闪烁工程生成的STM32-FD-FLASHLED.hex ,点击generate保存为STM32-FD-FLASHLED.dfu8.打开C:\Program Files\STMicroelectronics\DfuSe\BIN\dfusedemo.exe ,如果驱动安装正确,会显示stm device in dfu mode 然后点击右下脚的choose,选择刚才生成的STM32-FD-FLASHLED.dfu 点击upgrade,固件烧写成功。
9.点击左上角的leave dfu mode,板上的几个led灯开始闪烁了。
NRF24L01无线串口开发板程序详解
1.源程序开发环境建立1.1程序编译软件编译软件用keil C51,打开安装文件,一路点击下一步即可完成。
1.2程序下载软件使用STC ISP下载软件。
2.源程序文件整体结构工程中,只有一个main.c文件,所有程序都写在这个文件里面。
Reg51.h是包含的头文件。
是不是非常简单!3.源程序执行流程无线数据处理程序:串口数据处理程序:4.串口配置函数void serial_open(void){SCON = 0X50;AUXR |= 0X04;TL2 = 0Xc0; // 9600TH2 = 0Xfd;AUXR|=0X10;}此串口配置函数,利用单片机内部的定时器2作为波特率发生器。
共用到4个寄存器:SCON AUXR TL2 TH2SM0和SM1的位决定串口工作的4种方式:程序中,SCON=0X50,即SM0=0 SM1=1,即串口工作在“方式1”;REN=1,允许串口接收数据。
TL2和TH2是定时器2的高位和低位寄存器。
程序中,首先AUXR|=0X40,最后AUXR|=0X10。
即首先把T2x12置1,然后把T2R置1。
即首先把定时器2设置为1T模式,然后把定时器打开。
5.串口发送数据函数void senddata(uchar data_buf){SBUF = data_buf;while(!TI);TI = 0;}用到了寄存器SBUF和寄存器SCON中的TI位。
SBUF寄存器是串口收发数据缓存寄存器,放到这个寄存器中的数据,会通过串口发送出去,接收到的串口数据,也会放到这个寄存器中。
也就是串口接收和发送都是使用这个寄存器。
程序中,SBUF=data_buf,就是把data_buf给了SBUF,单片机自动把SBUF里面的数据发送到串口。
TI是串口发送数据完成标志位,当串口发送完一个数据,此位置1,置位后,需要通过软件清0。
所以通过while(!TI),来检测TI位,达到检测串口是否发送完数据的目的。
NRF24L01模块系列说明书
答:原厂给的标准收发演示例程,有 51 PIC STM32 的,都是标准 C 语言编写, 因此即使移植其它单片机也很快
14 问:拿到模块和程序后,自己焊接测试电路和移植程序,下载进去后通讯不 了。
答:首先不用怀疑模块的问题。生产工艺成熟,不良率在不测试时候低于 1%, 何况全部测试,不良率低于千分之一。大部分新手自己焊接电路移植程序不良是 因为移植时候硬件错误或者软件增删错误引起,因为即使很小点错误,也能导致 整个程序的失效,所以建议自己移植程序时候要很小心,尽量照搬我们的例程, 等整个程序跑起来再做修改。若实在搞不定,可以借用我们的测试板,或者付出 很少费用就能买到配套的测试板,这样能给客户节省不少的时间。
11 问 NRF24L01 系列模块可以一对多发送或者多对一接收吗?
答:完全可以,70%客户都这么用的。
12 问:我是新手,你们提供哪些方面的技术支持?
答:2.4G 系列模块属于有点技术难度的产品,若完全依靠客户参照规格书 写程序,会浪费客户一个多礼拜的时间,比较幸运的是我们提供了参考程序,并 且提供和程序配套的测试板借用或购买,可以让客户快速体验模块的性能。建议 项目比较急的客户选用,价格每个 20 元成本价格销售,可以给客户节省好几天 的调试时间,很划算。
答:一款原产台湾,一款原产品挪威,随着众多 IC 晶圆厂自己无线 IC 的 推出,兼容模块的价格从 2008 年的 20 元左右一直跌落到目前的 4.5,利润由当 初的 10 元降到现在的 0.5 元以下,其中挪威版的出的最早,价格虽然猛降,但 是始终拼不过台产芯片。
3 问:挪威版本的 NRF24L01+和台产版的哪个使用效果会更好? 答:台产版的完全克隆挪威版的,并在以前的基础上加了+7DB 的功放电路,
