搜档网
当前位置:搜档网 › EzUI系列模块快速使用教程_Part1

EzUI系列模块快速使用教程_Part1

EzUI系列模块快速使用教程

提示:

◆本教程将以EzUIV10_043_V10模块为介绍对像;

◆本教程的目的在于让EzUI系列模块用户快速点亮模块屏幕、掌握模块的基本使用方法;

◆本教程所涉及的EzUI模块以及EzUITool工具软件的更多细节请参考相应的手册。

目录

?认识EzUIV10_043_V10模块

?EzUI系列模块与EzUITool工具软件

?点亮EzUI模块并显示蓝色背景

?在EzUI模块上显示位图、字符串

?在界面中设置触摸区域控件

?使用触摸区域控件进行多界面切换

?使用位图触摸按钮控件

?利用位图触摸按钮控件实现单选按钮效果

?使用数值控件实现数值输入

?使用弹出下拉选框控件进行界面切换

认识EzUIV10_043_V10模块

◆EzUI系列模块是基于TFT显示屏及触摸屏的人机界面(HMI)显示模块;

◆EzUI系列模块内置功能丰富的GUI系统,支持多种控件,几乎不需要用户控制器的介入控制,便可实现多种人机交互功能;

◆内置的GUI系统以控件为基本元素,每个控件以唯一的ID号进行标识,而GUI系统以界面为单元对控件及显示内容进行管理、服务;

◆由EzUITool工具软件进行资源文件(.ers)制作、编辑,资源文件包含图片、字库等素材,以及界面设计、界面中的控件配置、显示指令预置等;

◆EzUI系列模块内置256M bytes的资源存储器,用于保存资源文件,模块将从其中读取资源文件并对其解析、载入,最终将用户界面呈现于显示屏并进行相应的人机操作响应;

用户控制器可通过EzUI 系列模块的UART 接口与模块进行控件数据交互,或直接控制界面的显示等;触摸及显示屏GUI 服务引擎资源存储器(资源文件)界面解析触摸消息触摸事件驱动的控件及界面服务UART 通讯接口

GUI 指令显示操作GUI 事件消息通道

GUI 数据交互显示屏及触摸

EzUIV10_043_V10:

◆EzUI系列模块当中的一款显示模块,显示屏尺寸为4.3英寸(对角线),

EzUIV10表示EzUI系统版本号(即内部GUI系统版本号),043表示屏幕尺寸;

◆“_V10”表示模块的硬件版本号。

注:EzUI系列模块的EzUI系统版本号将不会在实物模块当中标识,如EzUIV10_043_V10模块上,仅标识为:EzUIVXX_043_V10。

EzUIV10_043_V10模块硬件接口显示区域J1GND Rev1

UART_RX

UART_TX

Reset

Vcc(Input 5V)用户输入5V 直流电源给模块供电

用户与模块通讯接口:TTL 电平的UART

EzUIV10_043_V10模块硬件接口

模式选择开关,可将模块设置为正常模式或资源下载模式。USB MiniB型插口,用于模块与电脑连接。

EzUI系列模块与EzUITool工具软件

EzUITool工具软件为配合EzUI系列模块的界面编辑软件,用户可利用该软件生成EzUI系列模块使用的资源文件(.ers);在所生成的资源文件中,可为模块显示加载所需的图片、字库、通用控件资源,也可为模块显示创建多个显示界面,并对这些界面进行编辑。

EzUITool 工具可为EzUI 系列模块生成一个资源文件,资源文件中包含有预置显示资源以及界面数据。预置显示资源(预置资源)主要为用户界面所需的图片、字库、通用控件资源等构成;这些预置显示资源都是整个用户界面的各个基本材料。界面数据即为用户在EzUITool 工具上为资源文件编辑的多个显示界面,每个界面都有唯一的界面索引号;用户可为每个界面预置多条普通显示操作指令以及设置多个控件以及配置控件间的响应消息。EzUITool 工具产生的资源文件后缀为“.ers ”,该资源文件需要预置在EzUI 系列模块当中的资源存储器,而EzUI 系列模块在其工作时,从模块上的资源存储器读取并分析资源文件。

◆EzUITool所涉及到的文件:

●“.ers”:EzUITool创建的资源文件。

●“.tmp”:EzUITool在使用时产生的临时文件。

●“.bmp”:EzUITool可以加载的位图文件,但要求位

图文件是Windows格式,支持24位色、8位色、4位色

以及单色的位图文件。

●“.hzk”:EzUITool可以加载的汉字库文件,要求该

文件的文件名前面以“单个汉字宽度X单个汉字高度”

为开头,也即24×24点的汉字库文件名必须为:

“24X24.hzk”;此外汉字库必须为GB2312规范的一、

二级汉字库。

◆EzUITool所涉及到的文件:

●“.asc”:EzUITool可以加载的ASCII英文字库文件,

要求该文件的文件名前面以“单个字符宽度X单个字符

高度”为开头,也即16×32点的英文字库文件名必须

为:“16X32.asc”。

●“.nir”:由NIS_ResourceEditTool工具制作生成的数

值输入框资源文件,属于EzUI系列模块当中的通用控

件范畴,EzUITool可以加载该类文件,作为资源文件

中的一项基本资源条目。

●“.sir”:由SIS_ResourceEditTool工具制作生成的字

符串输入框资源文件,属于EzUI系列模块当中的通用

控件范畴,EzUITool可以加载该类文件,作为资源文

件中的一项基本资源条目。

点亮EzUI模块并显示蓝色背景

找到EzUITool 工具软件,并双击

EzUITool.exe ,打开工具软件

选择合适的配置选项,如本教程所示例的EzUI 系列4.3寸模块…..

点击“确定”,创建一个新的资源文件

新建的资源文件,尚未保存功能界面切换按钮,按下该按钮将可以把功能界面切换至“界面创建”功能界面。新建界面工具按钮,按下此按钮,将可以创建一个新界面。

在此输入字符串,为创建的界面命名…

点击“确定”完成新界面的创建….

单击选择界面列表中刚刚创建的界面…功能界面切换按钮,将会切换进入界面编辑功能界面绘图色设置指令工具按钮,点击该按钮,在打开的对话框中完成绘图色的设置。点击该区域,可打开颜色选择对话框,在其中选择好合适的颜色即可,本例选择蓝色。完成后,点击“确定”

清屏指令工具按钮,用户可点击该按钮,将会使用该条指令之前所设置的绘图色进行全屏清屏操作。背光设置指令工具按钮,点击该按钮,为当前界面添加一条背光设置指令,相当于设置背光亮度。在打开的对话框中设置好合适的背光亮度,完成后点击“确定”即可。保存工具按钮,点击该按钮来将当前正在编辑的界面数据保存至资源文件在保存文件对话框中选择合适的保存路径以及文件名,点击“保存”,即可完成资源文件的生成。

打开保存资源文件的文件夹,即可看到后缀为.ers的资源文件。

在模块断电的前提下,先将模块上的JP2拨至USB模式(即资源下载模式)选择的一端…

利用USB线将模块与电脑连接起来...

然后给模块供电,5V直流供电…

nRF24L01无线通信模块使用手册12

深圳市德普施科技有限公司 nRF24L01无线通信模块使用手册 一、模块简介 该射频模块集成了NORDIC公司生产的无线射频芯片nRF24L01: 1.支持2.4GHz的全球开放ISM频段,最大发射功率为0dBm 2.2Mbps,传输速率高 3.功耗低,等待模式时电流消耗仅22uA 4.多频点(125个),满足多点通信及跳频通信需求 5.在空旷场地,有效通信距离:25m(外置天线)、10m(PCB天线) 6.工作原理简介: 发射数据时,首先将nRF24L01配置为发射模式,接着把地址TX_ADDR和数据TX_PLD 按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从发送堆栈中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC_CNT)达到上限,MAX_RT置高,TX_PLD不会被清除;MAX_RT或TX_DS置高时,使IRQ变低,以便通知MCU。最后发射成功时,若CE为低,则nRF24L01进入待机模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入待机模式2。 接收数据时,首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在接收堆栈中,同时中断标志位RX_DR置高,IRQ变低,以便通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。 三、模块引脚说明

NRF24L01无线模块收发程序例程

//下面是接收的NRF24L01的程序。 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include #include "nrf24l01.h" #include #define uchar unsigned char #define uint unsigned int sbit IRQ =P1^2;//输入 sbit MISO =P1^3; //输入 sbit MOSI =P1^1;//输出 sbit SCLK =P1^4;//输出 sbit CE =P1^5;//输出 sbit CSN =P1^0;//输出 uchar RevTempDate[5];//最后一位用来存放结束标志 uchar code TxAddr[]={0x34,0x43,0x10,0x10,0x01};//发送地址 /*****************状态标志*****************************************/ uchar bdata sta; //状态标志 sbit RX_DR=sta^6; sbit TX_DS=sta^5; sbit MAX_RT=sta^4; /*****************SPI时序函数******************************************/ uchar NRFSPI(uchar date) { uchar i; for(i=0;i<8;i++) // 循环8次 { if(date&0x80) MOSI=1; else MOSI=0; // byte最高位输出到MOSI date<<=1; // 低一位移位到最高位 SCLK=1; if(MISO) // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据date|=0x01; // 读MISO到byte最低位 SCLK=0; // SCK置低 } return(date); // 返回读出的一字节 } /**********************NRF24L01初始化函数*******************************/ void NRF24L01Int() {

nRF24L01无线通信模块使用手册

nRF24L01无线通信模块使用手册 一、模块简介 该射频模块集成了NORDIC公司生产的无线射频芯片nRF24L01: 1.支持2.4GHz的全球开放ISM频段,最大发射功率为0dBm 2.2Mbps,传输速率高 3.功耗低,等待模式时电流消耗仅22uA 4.多频点(125个),满足多点通信及跳频通信需求 5.在空旷场地,有效通信距离:25m(外置天线)、10m(PCB天线) 6.工作原理简介: 发射数据时,首先将nRF24L01配置为发射模式,接着把地址TX_ADDR和数据TX_PLD按照时序由SPI 口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD 从发送堆栈中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC_CNT)达到上限,MAX_RT置高,TX_PLD不会被清除;MAX_RT或TX_DS置高时,使IRQ变低,以便通知MCU。最后发射成功时,若CE为低,则nRF24L01进入待机模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入待机模式2。 接收数据时,首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在接收堆栈中,同时中断标志位RX_DR置高,IRQ 变低,以便通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。 二、模块电气特性 参数数值单位 供电电压5V 最大发射功率0dBm 最大数据传输率2Mbps 电流消耗(发射模式,0dBm)11.3mA 电流消耗(接收模式,2Mbps)12.3mA 电流消耗(掉电模式)900nA 温度范围-40~+85℃ 三、模块引脚说明 管脚符号功能方向 1GND电源地 2IRQ中断输出O 3MISO SPI输出O 4MOSI SPI输入I 5SCK SPI时钟I 6NC空 7NC空 8CSN芯片片选信号I 9CE工作模式选择I 10+5V电源

NRF24L01无线模块C语言程序

NRF24L01无线模块C语言程序 24MHz晶振 #include #include #include #include #include #include #define U8 unsigned char #define U16 unsigned int #define TX_ADDR_WITDH 5 //发送地址宽度设置为5个字节 #define RX_ADDR_WITDH 5 //接收地址宽度设置为5个字节 #define TX_DATA_WITDH 1//发送数据宽度1个字节 #define RX_DATA_WITDH 1//接收数据宽度1个字节 #define R_REGISTER 0x00//读取配置寄存器 #define W_REGISTER 0x20//写配置寄存器 #define R_RX_PAYLOAD 0x61//读取RX有效数据 #define W_TX_PAYLOAD 0xa0//写TX有效数据 #define FLUSH_TX 0xe1//清除TXFIFO寄存器 #define FLUSH_RX 0xe2//清除RXFIFO寄存器 #define REUSE_TX_PL 0xe3//重新使用上一包有效数据 #define NOP 0xff//空操作 #define CONFIG 0x00//配置寄存器 #define EN_AA 0x01//使能自动应答 #define EN_RXADDR 0x02//接收通道使能0-5个通道 #define SETUP_AW 0x03//设置数据通道地址宽度3-5 #define SETUP_RETR 0x04//建立自动重发 #define RF_CH 0x05//射频通道设置 #define RF_SETUP 0x06//射频寄存器 #define STATUS 0x07//状态寄存器 #define OBSERVE_TX 0x08//发送检测寄存器 #define CD 0x09//载波 #define RX_ADDR_P0 0x0a//数据通道0接收地址 #define RX_ADDR_P1 0x0b//数据通道1接收地址 #define RX_ADDR_P2 0x0c//数据通道2接收地址 #define RX_ADDR_P3 0x0d//数据通道3接收地址 #define RX_ADDR_P4 0x0e//数据通道4接收地址 #define RX_ADDR_P5 0x0f//数据通道5接收地址

NRF24L01功能使用文档

NRF24L01使用文档 基于c8051f330单片机

目录 芯片简介 (3) 1 NRF24L01功能框图 (4) 2 NRF24L01状态机 (5) 3 Tx与Rx的配置过程 (7) 3.1 Tx 模式初始化过程 (7) 3.2 Rx模式初始化过程 (8) 4控制程序详解 (9) 4.1 函数介绍 (9) 4.1.1 uchar SPI_RW(uchar byte) (9) 4.1.2 uchar SPI_RW_Reg (uchar reg, uchar value) (10) 4.1.3 uchar SPI_Read (uchar reg); (10) 4.1.4 uchar SPI_Read_Buf (uchar reg, uchar *pBuf, uchar bytes); (11) 4.1.5 uchar SPI_Write_Buf (uchar reg, uchar *pBuf, uchar bytes); (11) 4.1.6 void RX_Mode(void) (12) 4.1.7 void TX_Mode(void) (13) 4.2 NRF24L01相关命令的宏定义 (13) 4.3 NRF24L01相关寄存器地址的宏定义 (14) 5 实际通信过程示波器图 (16) 1)发射节点CE与IRQ信号 (17) 2)SCK与IRQ信号(发送成功) (18) 3)SCK与IRQ信号(发送不成功) (19)

芯片简介 NRF24L01是NORDIC公司最近生产的一款无线通信通信芯片,采用FSK调制,内部集成NORDIC自己的Enhanced Short Burst 协议。可以实现点对点或是1对6的无线通信。无线通信速度可以达到2M(bps)。NORDIC公司提供通信模块的GERBER文件,可以直接加工生产。嵌入式工程师或是单片机爱好者只需要为单片机系统预留5个GPIO,1个中断输入引脚,就可以很容易实现无线通信的功能,非常适合用来为MCU系统构建无线通信功能。

nrf24l01(2.4G模块)

NRF24L01(2.4G模块) 一、模块简介 (1)2.4GHz全球开放ISM频段免许可证使用。 (2)最高工作速率2Mbps,高效GFSK调制,抗干扰能力强。 (3)126频道,满足多点通信和跳频通信需要。 (4)内置硬件CRC检错,和点对点通信地址控制。 (5)低功耗,1.9-3.6V工作,待机模式下22uA;掉电模式900nA。 (6)内置2.4GHz天线,体积小巧:15mm×29mm。 (7)模块可软件设置地址,只有收到本机地址时才会输出数据(提供中断提示),可直接接各种单片机使用,软件编程非常方便。 (8)内稳压电路,使用各种电源包括DC/DC开关电源均有很好的通道效果。 (9)2.54mm间距接口,DIP封闭。 (10)工作于Enhanced ShockBurst具有Automatic packet handling,Auto packet transaction handling,具有可选的内置包应答机制,极大地降低丢包率。 (11)与51单片机P0口连接的时候,需要加10K的上拉电阻,与其余口连接不需要。(12)其他系列的单片机,如果是5V的,请参考该系列单片机IO口输出电流大小,如果超过10mA,需要串联电阻分压,否则容易烧毁模块!如果是3.3V的,可以直接和RF24L01模块的IO口线连接。比如AVR系列单片机。如果是5V的一般串接2K的电阻。 二、接口电路 说明: 1)VCC脚接电压范围为:1.9V-3.6V,不能在这个敬意之外,超过3.6V将会烧毁模块。推荐电压3.3左右。 2)除电源VCC和接地端,其余脚都可以直接和普通的5V单片机IO口直接相连,无需转换。当然对3V左右的单片机更加适用了。 3)硬件上面没有SPI的单片机也可以控制本模块,用普通单片机IO口模拟SPI,不需要单片机真正的串口介入,只需要普通的单片机IO口就可以了,当然用串口也可以。 4)如果需要其他封装接口,比如密脚插针,或者其他形式的接口,可联系我们定做。 三、引脚说明

nrf24l01无线模块NRF24L01模块收发c程序

//许多人都在找nrf24l01无线模块的c程序;我以前刚接触无线//时用的就是nrf24l01模块;搜索了许多程序有很多都没法直接用;甚至还怀疑模块是不是被我搞坏了;拿去让别人检测模块又是好的;为避免大家走弯路;我将我的程序发出来供大家参考; 这是nrf24l01无线模块pcb图; 下面有Nrf24l01无线模块的收发c程序;以下程序经本人亲自测试;绝对能用!! 请注意以下几点: 1、24L01模块的电源电压是否为3V-3.6V之间; 2、如果您用的单片机是5V的话,请在IO口与模块接口之间串一个1K电阻; 3、检查模块的GND是否与单片机的GND相连接 4、先用程序进行调试,如果IO口不同,请更改IO口或相关时序; 5、如果是51系列单片机,晶振请选用11.0592M Hz; 模块供电最好用asm1117 5v转3.3v 稳压 测试单片机是stc89c52;at89c52 通用; 收发一体;

一大截不废话了;上程序;此程序是按键控制led;当按下s的时候对应接受的led会闪闪发光;很简单的~如果要实现其他更先进的功能;自己发掘吧~~ 务必将硬件连接正确;否则;它不会工作的~~当然做什么都要严谨~~错一点就差大了~~ 《《收发一体程序》》 #include #include typedef unsigned char uchar; typedef unsigned char uint; //****************************************NRF24L01端口定义

*************************************** sbit M ISO =P1^3; sbit M OSI =P1^4; sbit SCK =P1^2; sbit CE =P1^1; sbit CSN =P3^2; sbit IRQ =P3^3; //************************************按键*************************************************** sbit KEY=P2^0; //***************************************************************************** sbit led=P2^1; //*********************************************NRF24L01*********************** ************** #define TX_ADR_WIDTH 5 // 5 uints TX address width #define RX_ADR_WIDTH 5 // 5 uints RX address width #define TX_PLOAD_WIDTH 20 // 20 uints TX payload #define RX_PLOAD_WIDTH 20 // 20 uints TX payload uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //本地地址uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //接收地址//***************************************NRF24L01寄存器指令******************************************************* #define READ_REG 0x00 // 读寄存器指令 #define WRITE_REG 0x20 // 写寄存器指令 #define RD_RX_PLOAD 0x61 // 读取接收数据指令 #define WR_TX_PLOAD 0xA0 // 写待发数据指令 #define FLUSH_TX 0xE1 // 冲洗发送FIFO指令 #define FLUSH_RX 0xE2 // 冲洗接收FIFO指令 #define REUSE_TX_PL 0xE3 // 定义重复装载数据指令 #define NOP 0xFF // 保留 //*************************************SPI(nRF24L01)寄存器地址**************************************************** #define CONFIG 0x00 // 配置收发状态,CRC校验模式以及收发状态响应方式#define EN_AA 0x01 // 自动应答功能设置 #define EN_RXADDR 0x02 // 可用信道设置 #define SETUP_AW 0x03 // 收发地址宽度设置 #define SETUP_RETR 0x04 // 自动重发功能设置 #define RF_CH 0x05 // 工作频率设置 #define RF_SETUP 0x06 // 发射速率、功耗功能设置 #define STATUS 0x07 // 状态寄存器 #define OBSERVE_TX 0x08 // 发送监测功能 #define CD 0x09 // 地址检测 #define RX_ADDR_P0 0x0A // 频道0接收数据地址 #define RX_ADDR_P1 0x0B // 频道1接收数据地址

NRF24L01参考程序(包含多个实例)

(相关人员如觉得本人水平低下,还请见谅) Nrf24L01的使用程序和使用方法和简单操作: 功能: 无线对发程序。两个模块a,b,实现按下一个按键,会在对方的数码管上显示3或4,在本机上显示1,2。 当一个模块,比如a模块。当两个按键按下其中一个,则会在另一个模块b上显示数字3,4(具体根据按下哪个按键)。以上功能描述,B模块按键按下,如同a模块一样的功能,不做系统性描述了。 下面给出程序中几个地方的解释: #define READ_REG 0x00 // 读寄存器指令 #define WRITE_REG 0x20 // 写寄存器指令 #define RD_RX_PLOAD 0x61 // 读取接收数据指令 #define WR_TX_PLOAD 0xA0 // 写待发数据指令 #define FLUSH_TX 0xE1 // 冲洗发送FIFO指令 #define FLUSH_RX 0xE2 // 冲洗接收FIFO指令 #define REUSE_TX_PL 0xE3 // 定义重复装载数据指令 #define NOP 0xFF // 保留 类似这种的描述,可以等同于READ_REG =0x00;这个是经过实际程序测试出来的,比如 以下程序: #include #define k 0xfe void main() { P1=k; } 则会出现此类结果:

MOSI = (uchar & 0x80); // output 'uchar', MSB to MOSI uchar = (uchar << 1); // shift next bit into MSB.. SCK = 1; // Set SCK high.. uchar |= MISO; // capture current MISO bit SCK = 0; 此处为spi的核心,是spi协议的编程,其中uchar |= MISO; 表示uchar |= MISO | uchar; MOSI = (uchar & 0x80);其中0x80是1000 0000,与上uchar,这种&,是按位与,故可以从uchar提取出一个电平给mosi。 MOSI = (uchar & 0x80); // output 'uchar', MSB to MOSI uchar = (uchar << 1); 这两句组合起来用,就实现了把uchar编程8位2进制数后的每一位都可以发送给mosi;Uchar的只待对象,就是上面的诸如#define FLUSH_TX 0xE1 这样的数,或者是相关的发送数据。 *pBuf这个并不是一个主要的问题,实际这个是涉及指针问题的,带*的跟地址有关系,但是我们其实不需要很关心编译的时候数据被具体存入哪个地址,即使是很重要的数据。 void init_NRF24L01(void) { inerDelay_us(100); CE=0; // chip enable CSN=1; // Spi disable SCK=0; // SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 写本地地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // 写接收端地址 SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // 频道0自动ACK应答允许 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 允许接收地址只有频道0,如果需要多频道可以参考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0); // 设置信道工作为2.4GHZ,收发必须一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为32字节 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //设置发射速率为1MHZ,发射功率为最大值0dB } 在整个初始化中我们看到: CE=0; // chip enable CSN=1; // Spi disable 这是设置整个的状态。如过状态设置成待机,则引脚可能变为高阻。(以上并非全部引脚)

nrf24l01无线模块

基于nRF24L01的无线温度采集系统设计 1引言 温度采集系统所采集的温度通常通过RS485、CAN总线通信方式传输至上位机,但这种方式维护较困难,不利于工业现场生产;而无线通信GPRS技术传输距离长,通信可靠稳定,但设计复杂、成本昂贵。这里采用工业级内置硬件链路层协议的低成本单芯片nRF24L01型无线收发器件实现系统间的无线 通信,完成无线信号的接收、显示及报警功能。 2nRF24L01简介 nRF24L01是一款工业级内置硬件链路层协议的低成本无线收发器。该器件工作于2.4GHz全球开放ISM频段,内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合增强型ShockBu rst技术,其输出功率和通信频道可通过程序配置。拥有ShockBurst和Enhanced ShockBurst两种数据传输模式。可直接与单片机I/O连接,外接元件数目少。nRF24L01功耗低,以-6dBm的功率发射时,工作电流仅9mA;接收时,工作电流仅12.3mA,多种低功率工作模式(掉电和空闲模式)更利于节能 设计。 3系统硬件设计 系统硬件设计主要由采集发送和接收显示两部分组成。图1为采集发送电路原理图,该电路主要由温度传感器DS18B20、单片机STC12LE5408和nRF24L01组成。 STC12LE5408是增强型8051单片机,速度快,集成度高,电压范围宽(2.2~3.8V),和MCS-5 1系列单片机指令系统完全兼容。其内部还有8KB Flash程序存储器,512字节RAM、2KB EEPRO M、4路PWM以及硬件看门狗(WDT)等资源.性价比高。 DSl8B20是DALLAS公司生产的单总线数字1-Wire温度传感器,可把温度信号直接转换成串行数字信号供单片机处理,采用1-Wire接口。DSl8B20的数据端DQ可通过4.7kΩ的上拉电阻接STC12LE5 408。nRF24L01的CE,CSN,SCK,MOSI,MISO,IRQ引脚则可接STC12LE5408的任意端口,但需在编程时注意,这里接至P1端口。由于nRF24L01具有接收数据功能,所以接收显示电路由单片机ST C12LE5408、nRF24L01和显示电路组成。所采集的数据也通过串口发送至PC机进行处理。

NRF24L01无线发射简易教程

NRF24L01 简易教程

先来看接口电路,使用的IO 口不是唯一的哦,可随意定义接口,当然是在使用IO 口模拟SPI 且IRQ 中断引脚不使用的使用查询方法判断接收状态的情况下了。作为初探我们就是用简单的IO 模拟SPI 的方法了,中断使用查询的方式。那么该教程讲解的接口与单片机的连接如下: 首先您需要了解NRF24L01,请参阅“NRF24L01 芯片中文资料”或者“NRF24L01 芯片英文资料”。 我们的教程是以一个简单的小项目为大家展示NRF24L01 的使用方法与乐趣。我们所写的教程均是以这种方式的呢,让您在学习的时候明白它能做什么,使您学起来不至于枯燥无味。 作为简易的教程,我们只需要知道它是怎么使用的就够了,我们本教程的目的是用NRF24L01 发送数据和接收数据,且接收方会对比发送的数据与接收的数据,若完全相同则控制LED 闪烁一次,并且把接收到的数据通过串口发送到PC 端,通过串口工具查看接收到的数据。 具体的要求如下: 1、具备发送和接收的能力。 2、发送32 个字节的数据,接收方接收到正确数据之后给予提示,通过LED 闪烁灯形 式。 3、把接收到的数据传送到PC 进行查看。 4、发送端每隔大约1.5 秒发送一次数据,永久循环。以上是程序的要求,若您想自行 设计出硬件接口,您也是可以添加一条呢:使用DIY 方 式设计NRF24L01 的接口板,且包含含单片机平台,使用PCB 方式或者万用板方式均可。如果您想让自己学的很扎实,那么推荐您自行做出接口板子呢。当然若您的能力不足,那么我们不推荐自行做板呢,因为这样会增加您学习的难度,反而起到了反效果呢。 我们使用的方式是画PCB 的方式呢,若您自己做了接口板子,那么您可以对比下一呢,O(∩_∩)O! 我们知道NRF24L01 的供电电压是1.9V~3.6V 不能超过这个范围,低了不工作,高了可能烧毁NRF24L01 芯片。我们常用的STC89C52 的单片机的供电电压是5V,我们不能直接给24L01 这个模块供电,我们需要使用AMS1117-3.3V 稳压芯片把5V 转成3.3V 的电压为24L01 模块供电。 为此我们的设计原理图如下:包含单片机最小系统、供电系统、下载程序接口、5V 转3.3V 电路、NRF24L01 模块接口。并且全部引出单片机的IO 口,另外还加了5 个电源输出接口,为扩展使用。还包括了电源指示LED 以及一个IO 口独立控制的LED,这个独立控制的LED用于NRF24L01 接收成功闪烁指示。为了保证系统的稳定性,在设计中添加了两个滤波电容。

NRF24L01无线模块

XL24L01P‐D01模块手册

尊敬的客户: 您好,感谢您选用本公司的无线模块,为了更快更好的使用此产品,请您仔细阅读本使用说明。无线传输距离受空间环境,输出速率,天线等因素影响,本公司标注的距离为基于本公司的测试硬件的开阔地测试距离,仅供参考。深圳市汇睿微通科技开发有限公司为专业无线模块制造厂商,具有多年的无线模块开发设计和制造生产能力,使用中有任何技术问题,请及时联系本公司的技术支持! 一:模块简介 XL24L01P‐D01是采用挪威NORDIC公司的nrf24L01p 2.4G无线收发IC设计的一款高性能2.4G无线收发模块,采用GFSK调制,工作在2400‐2483M的国际通用ISM频段,最高调制速率可达2MBPS。XL24L01P-D01集成了所有与RF协议相关的高速信号处理部分,如:自动重发丢失数据包和自动产生应答信号等,模块的SPI接口可以利用单片机的硬件SPI口连接或用单片机的I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口,便于使用低成本单片机。 模块大小32*15.2mm,2.54mm间距的双排插针接口,使用内置PCB天线设计,开阔地1MBPS速率下,收发10个字节的数据量测试距离最远约70米左右。 1.1 模块尺寸: 管脚次序 管脚定义 功能描述 1 GND 电源地(方形焊盘) 2 VIN 输入电源(3.0—3.3V) 3 CE 工作模式选择,RX或TX模式选择 4 CSN SPI使能,低有效 5 SCK SPI时钟 6 MOSI SPI输入 7 MISO SPI输出 8 IRQ 中断输出

二:模块功能 2.1 特性 z工作频率 2400‐2483M,共125个工作频道, 符合国际通用ISM法规, z FSK/GSK调制 z支持2M的高速数据传输,减少发射时间,降低平均功耗。 z当工作在应答模式通信时,快速的空中传输及启动时间,极大的降低了平均功耗收 z自动重发功能,自动检查和重发丢失的数据包,重发时间及重发次数可软件控制z自动应答功能,在收到有效数据后,模块自动发送应答信号,无须另行编程 z内置硬件CRC检错和点对多点通信地址控制 z数据包传输错误计数器及载波检测功能可用于跳频设置 z可同时设置六路接收通道地址,可选择性的打开接收通道 z自动存储未收到的应答信号的数据包 2.2 应用范围 无线遥控 机器人控制 家庭自动化 智能玩具 游戏无线控制器 无线传感器 无线语音

NRF24L01的C51单片机讲解

#include #include /*********************************************************************** ****************/ /* NRF24L01 的管脚定义,以及在本程序中的应用,VCC接3.3V电源,可以通过5V用电压转换芯片 /*得到,NC 管脚可以接可以不接,暂时没用途。本程序应用于51或者52单片机,是两个模块进行通讯 /*成功的简单指示,现象是:模块1的 KEY1 对应模块1的LED1 和模块2的LED3 ,模块1的 KEY2 对应模 /*块1的LED2 和模块2的LED4,发过来也对应。 /*********************************************************************** ****************/ typedef unsigned char uchar; typedef unsigned char uint; /************************************NRF24L01端口定义 ***********************************/ =P1^3; sbit MOSI =P1^2; sbit SCK =P1^1; sbit CSN =P1^0; sbit IRQ =P3^2; //数字输入(可屏蔽中断) /************************************按键 ***********************************************/ sbit KEY1=P2^7;//按键S1 sbit KEY2=P2^2;//按键S2 /************************************数码管位选 ******************************************/ sbit led1=P1^0; //LED0 sbit led2=P1^1; //LED1 sbit led3 =P1^2; //LED2 sbit led4 =P1^3; //LED3 sbit led5 =P1^4; //LED4 /*********************************************NRF24L01****************** *****************/ #define TX_ADR_WIDTH 5 // 5 uints TX address width #define RX_ADR_WIDTH 5 // 5 uints RX address width #define TX_PLOAD_WIDTH 20 // 20 uints TX payload #define RX_PLOAD_WIDTH 20 // 20 uints TX payload uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //本地地址 uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //接收地址

NRF24L01详细教程..

先来看接口电路,使用的IO 口不是唯一的哦,可随意定义接口,当然是在使用IO 口模拟SPI 且IRQ 中断引脚不使用的使用查询方法判断接收状态的情况下了。作为初探我们就是用简单的IO 模拟SPI 的方法了,中断使用查询的方式。那么该教程讲解的接口与单片机的连接如下: 首先您需要了解NRF24L01,请参阅“NRF24L01 芯片中文资料”或者“NRF24L01 芯片英文资料”。 我们的教程是以一个简单的小项目为大家展示NRF24L01 的使用方法与乐趣。我们所写教程均是以这种方式的呢,让您在学习的时候明白它能做什么,使您学起来不至于枯燥无味。 作为简易的教程,我们只需要知道它是怎么使用的就够了,我们本教程的目的是用NRF24L01 发送数据和接收数据,且接收方会对比发送的数据与接收的数据,若完全相同则控制LED 闪烁一次,并且把接收到的数据通过串口发送到PC 端,通过串口工具查看接收到的数据。 具体的要求如下: 1、具备发送和接收的能力。 2、发送32 个字节的数据,接收方接收到正确数据之后给予提示,通过LED 闪烁灯形 式。 3、把接收到的数据传送到PC 进行查看。 4、发送端每隔大约1.5 秒发送一次数据,永久循环。 以上是程序的要求,若您想自行设计出硬件接口,您也是可以添加一条呢:使用DIY 方式设计NRF24L01 的接口板,且包含含单片机平台,使用PCB 方式或者万用板方式均可。如果您想让自己学的很扎实,那么推荐您自行做出接口板子呢。当然若您的能力不足,那么我们不推荐自行做板呢,因为这样会增加您学习的难度,反而起到了反效果呢。 我们知道NRF24L01 的供电电压是1.9V~3.6V 不能超过这个范围,低了不工作,高了可能烧毁NRF24L01 芯片。我们常用的STC89C52 的单片机的供电电压是5V,我们不能直接给24L01 这个模块供电,我们需要使用AMS1117-3.3V 稳压芯片把5V 转成3.3V 的电压为24L01 模块供电。 为此我们的设计原理图如下:包含单片机最小系统、供电系统、下载程序接口、5V 转3.3V 电路、NRF24L01 模块接口。并且全部引出单片机的IO 口,另外还加了5 个电源输出接口,为扩展使用。还包括了电源指示LED 以及一个IO 口独立控制的LED,这个独立控制的LED用于NRF24L01 接收成功闪烁指示。为了保证系统的稳定性,在设计中添加了两个滤波电容。

2.4G无线传输模块 NRF24L01

NRF24L01无线反射接收模块

1.所需材料 a)单片机最小系统 b)液晶(显示状态作用) c)NRF24L01无线模块 2.基本须知 a)引脚 i. b)NRF24L01状态机(主要有一下几个状态) i.Power Down Mode:掉电模式 ii.Tx Mode:发射模式 iii.Rx Mode:接收模式 iv.Standby-1Mode:待机1模式 v.Standby-2Mode:待机2模式 c)对模块的固件编程的基本思路如下: i.置CSN为低,是能芯片,配置芯片各个参数。配置参数在Power Down状态中完成 ii.如果是Tx模式,填充Tx FIFO iii.配置完成以后,通过CE与CONFIG中的PWR_UP与PRIM_RX参数确定NRF24L01要切换到的状态。 Tx Mode:PWR_UP=1;PRIM_RX=0;CE=1(保持超过10us就可以) Rx Mode:PWR_UP=1;PRIM_RX=1;CE=1 iv.IRQ引脚会在以下三种情况变低: 1.Tx FIFO发完并且收到ACK(使能ACK情况下) 2.RxFIFO收到数据 3.达到最大重发次数 将IRQ接到外部中断输入引脚,通过中断程序进行处理 d)模块通信中的相互识别,是通过定义发送地址和本机地址(如 )地址可以自定义 3.实现思路

a)使用SPI通信与NRF24L01进行相互通信,需要编写基本通信模块的代码(需要用到读 写数据时序图) b)操作NRF24L01模块需要控制其内部的寄存器,因此要在程序中宏定义模块内部需要使 用的寄存器的地址。 c)使用模块之前需要对模块内的相应寄存器进行初始化设置,同理,其他各个模式也有相应 的初始化设置。 d)若接收到数据,IQR引脚会被拉低,此时可以通过SPI通信模块程序读取相应寄存器的 值,读取出所接收到的数据。 e)

NRF24L01模块说明书

NRF24L01高速嵌入式无线数传模块 说 明 书

2008年12月20日 一、产品特性 2.4GHz全球开放ISM频段,最大0dBm发射功率,免许可证使用 支持六路通道的数据接收 低工作电压:1.9~3.6V低电压工作 高速率:2Mbps,由于空中传输时间很短,极大的降低了无线传输中的碰撞现象(软件设置1Mbps或者2Mbps的空中传输速率) 多频点:125频点,满足多点通信和跳频通信需要 超小型:内置2.4GHz天线,体积小巧,15x29mm(包括天线) 低功耗:当工作在应答模式通信时,快速的空中传输及启动时间,极大的降低了电流消耗。 低应用成本:NRF24L01集成了所有与RF协议相关的高速信号处理部分,比如:自动重发丢失数据 包和自动产生应答信号等,NRF24L01的SPI接口可以利用单片机的硬件SPI口连接或用单片机I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口,便于使用低成本单片机。 便于开发:由于链路层完全集成在模块上,非常便于开发。 自动重发功能,自动检测和重发丢失的数据包,重发时间及重发次数可软件控制

自动存储未收到应答信号的数据包 自动应答功能,在收到有效数据后,模块自动发送应答信号,无须另行编程 载波检测—固定频率检测 内置硬件CRC检错和点对多点通信地址控制 数据包传输错误计数器及载波检测功能可用于跳频设置 可同时设置六路接收通道地址,可有选择性的打开接收通道 标准插针Dip2.54MM间距接口,便于嵌入式应用 二、基本电气特性 三、引脚说明

说明: 1)VCC脚接电压范围为1.9V~3.6V之间,不能在这个区间之外,超 过3.6V将会烧毁模块。推荐电压3.3V左右。 (2)除电源VCC和接地端,其余脚都可以直接和普通的5V单片机IO口 直接相连,无需电平转换。当然对3V左右的单片机更加适用了。 (3)硬件上面没有SPI的单片机也可以控制本模块,用普通单片机IO 口模拟SPI不需要单片机真正的串口介入,只需要普通的单片机IO口 就可以了,当然用串口也可以了(a:与51系列单片机P0口连接时候,需要加10K的上 拉电阻,与其余口连接不需要。 b:其他系列的单片机,如果是5V的,请参考该系列 单片机IO口输出电流大小,如果超过10mA,需要串联 电阻分压,否则容易烧毁模块!如果是3.3V的,可以 直接和RF24l01模块的IO口线连接。比如AVR系列单片机

NRF24L01无线通信模块

NRF24L01无线通信模块 一、NRF24L01简介: NRF24L01 是一款工作在2.4~2.5GHz 世界通用ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockBurst TM 模式控制器、功率放大器、晶体振荡器、调制器、解调器。输出功率、频道选择和协议的设置可以通过SPI 接口进行设置。极低的电流消耗:当工作在发射模式下发射功率为-6dBm 时电流消耗为9mA,接收模式12.3mA。掉电模式和待机模式下电流消耗更低。 二、NRF24L01参考数据: 三、模块接口尺寸和说明

四、引脚及功能: 五、NRF24L01的SPI命令宏定义:

六、NRF24L01相关寄存器地址宏定义: 七、NRF24L01的工作模式: 1、NRF24L01模式配置

2、发送模式函数配置 3、接收模式函数配置 4、发送、接收模式说明 (1)在发射模式下,CE至少要拉高10us。 (2)NRF24L01在接收模式下可以接收6路不同通道的数据,每一个数据通道使用不同的地址,但是共用相同的频道。 (3)数据通道0是唯一一个可以配置为40位自身地址的数据通道,1~5数据通道都为8位自身地址和32位共用地址。 (4)所有的数据通道都可以设置为增强型ShockBurst模式。

八、NRF24L01的打包格式: 1、增强型ShockBurst模式下的数据包形式 前导码 | 地址(3~5字节) | 9位(标志位) | 数据(1~32字节) | CRC校验(0/1/2字节) 2、ShockBurst模式下与NRF24L01等相兼容的数据包形式 前导码 | 地址(3~5字节) | 数据(1~32字节) | CRC校验(0/1/2字节) 3、数据包说明 前导码:在发送模式下加入,接收模式下去除,用来检测0和1。 地址:1)地址内容为接收机地址。 2)地址宽度可以是3、4或5字节宽度。 3)地址可以对接收通道和发射通道分别进行配置。 4)从接收的数据包中自动去除地址。 标志位:1)PID,数据包识别。其中两位是用来每当接收到新的数据包后加一。 2)七位保留,用作将来与其他产品相兼容。 3)当NRF24L01与NRF2401/NRF24E1通讯时不起作用。 数据:1~32字节宽度。 CRC:CRC校验是可选的。 九、小结: 1、对于NRF24L01,在使用的时候要注意收发双方的频道要相同(NRF24L01总共有40个可选频道)。 2、注意寄存器的配置。 3、地址要统一。

相关主题