NRF24LE1编程器&烧写器使用说明
nRF24L01中文手册

在 ShockBurstTM 发送模式下,nRF24L01 自动生成前导码及 CRC 校验,参见表格 12。数据发送完毕 后 IRQ 通知 MCU。减少了 MCU 的查询时间,也就意味着减少了 MCU 的工作量同时减少了软件的开发 时间。nRF24L01 内部有三个不同的 RX FIFO 寄存器(6 个通道共享此寄存器)和三个不同的 TX FIFO 寄 存器。在掉电模式下、待机模式下和数据传输的过程中 MCU 可以随时访问 FIFO 寄存器。这就允许 SPI 接口可以以低速进行数据传送,并且可以应用于 MCU 硬件上没有 SPI 接口的情况下。
小心:静电敏感器件。操作时遵守防护规则。
COPYRIGHT ©2007 迅通科技 TEL 北京:+86 10 64390486 深圳:+86 755 26675941
6
术语表
迅通科技
术语
描述
ACK
确认信号(应答信号)
ART
自动重发
CE
芯片使能
CLK
迅 ShockBurstTM 模式: ShockBurst 模式下 nRF24L01 可以与成本较低的低速 MCU 相连。高速信号处理是由芯片内部的射频 协议处理的,nRF24L01 提供 SPI 接口,数据率取决于单片机本身接口速度。ShockBurst 模式通过允许与 单片机低速通信而无线部分高速通信,减小了通信的平均消耗电流。
工业传感器 玩具
技
低工作电压:1.9~3.6V
概述:
科
nRF24L01 是一款工作在 2.4~2.5GHz 世界通用 ISM 频段的单片无线收发器芯片。无线收发器包括:频
nRF24LE1H 详细编程电路图 烧写电路

nRF24LE1 Flash/OTP Programming Adapter Kit User Guide Liability disclaimer
Nordic Semiconductor ASA reserves the right to make changes without further notice to the product to improve reliability, function or design. Nordic Semiconductor ASA does not assume any liability arising out of the application or use of any product or circuits described herein.
Figure 1. Kit content nRF24LE1 Flash/OTP Programming Adapter Kit content: • • 1 Programming Adapter Module 1 Printed Getting Started Guide
Revision 1.1
Main office: Otto Nielsens veg 12 7004 Trondheim Norway Phone: +47 72 89 89 00 Fax: +47 72 89 89 89
Revision History
Date December 2011 October 2009 Version 1.1 1.0 Description Removed references to the CD User Guide
nRFgo nRF24LE1 Flash/OTP Programming Adapter Kit
stc12单片机SPI的nrf24l01程序

stc12单片机SPI的nrf24l01程序/////////////////////发送/////////////////////////////// #include <reg52.h>#include <intrins.h>typedef unsigned char uchar;#define uint unsigned int//****************************************IO端口定义***************************************sfr SPCTL = 0xCE;//SPI Control Register SSIG SPEN DORD MSTR CPOL CPHASPR1 SPR0 0000,0100sfr SPSTAT = 0xCD;//SPI Status Register SPIF WCOL - - - -- - 00xx,xxxxsfr SPDAT = 0xCF;sbit CE =P1^0;sbit CSN =P1^1;sbit IRQ =P1^2;sbit led=P1^3;//********************************************************* ********************************* uchar bdata sta;//状态标志sbit RX_DR =sta^6;sbit TX_DS =sta^5;sbit MAX_RT =sta^4;//*********************************************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 32// 32 uints TX payload#define RX_PLOAD_WIDTH 32// 32 uints TX payloaduchar const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};//本地地址uchar const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};//接收地址 uchar codeTx_Buf[TX_PLOAD_WIDTH]={0xff,0xee,0x11,0x22,0x33,0xaa,0xbb,0x11,0x22,0x33,0xaa,0xbb,0x11,0x2 2,0x33,0xaa,0xbb,0x11,0x22,0x33,0xaa,0xbb,0x11,0x22,0x33,0xaa ,0xbb,0x11,0x22,0x33,0xee,0xff};//发送数据 ucharRx_Buf[RX_PLOAD_WIDTH];//接收数据//***************************************NRF24L01寄存器指令*******************************************************#define READ_REG 0x00 // 读寄存器指令 #defineWRITE_REG 0x20 // 写寄存器指令 #define RD_RX_PLOAD 0x61 // 读取接收数据指令 #define WR_TX_PLOAD 0xA0 // 写待发数据指令 #define FLUSH_TX0xE1 // 冲洗发送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 // 收发地址宽度设置 #defineSETUP_RETR 0x04 // 自动重发功能设置 #define RF_CH 0x05 // 工作频率设置 #define RF_SETUP 0x06 // 发射速率、功耗功能设置 #define STATUS 0x07 // 状态寄存器 #define OBSERVE_TX 0x08 // 发送监测功能 #defineCD 0x09 // 地址检测 #define RX_ADDR_P0 0x0A // 频道0接收数据地址#defineRX_ADDR_P1 0x0B // 频道1接收数据地址 #defineRX_ADDR_P2 0x0C // 频道2接收数据地址 #defineRX_ADDR_P3 0x0D // 频道3接收数据地址 #defineRX_ADDR_P4 0x0E // 频道4接收数据地址 #defineRX_ADDR_P5 0x0F // 频道5接收数据地址 #define TX_ADDR 0x10 // 发送地址寄存器 #define RX_PW_P0 0x11 // 接收频道0接收数据长度 #define RX_PW_P1 0x12 // 接收频道1接收数据长度 #define RX_PW_P2 0x13 // 接收频道2接收数据长度 #define RX_PW_P3 0x14 // 接收频道3接收数据长度 #define RX_PW_P4 0x15 // 接收频道4接收数据长度 #define RX_PW_P5 0x16 // 接收频道5接收数据长度#define FIFO_STATUS 0x17 // FIFO栈入栈出状态寄存器设置/******************************************延时函数********************************************************///长延时 void Delay(unsigned int s) { unsigned int i,j;for(i=0;i<1000;i++)for(j=0;j<s;j++); } //短延时 voiddelay_ms(unsigned int x) { unsigned int i,j; i=0;for(i=0;i<x;i++) { j=108; while(j--); } } /************初始化5A spi***************/ void Init_SPI() { SPDAT=0; //初始化数据寄存器 SPSTAT=0XC0; //清除状态寄存器SPCTL=0XD2;//设置为主机模式主频不能超过2M //忽略SS 使能spi MSB SCLK空闲为0 第一个时钟边沿开始采集 spi通信的频率为CUP_CLK/16 } //SPDAT 读写一个字节 //TxData:要写入的字节//返回值:读取到的字节 uchar SPI_ReadWriteByte(uchar TxData){ SPDAT=TxData; //发送一个bytewhile((SPSTAT&0x80)==0); SPSTAT=0XC0; //清除状态寄存器 return SPDAT; //返回收到的数据 } //读取SPI寄存器值 //reg:要读的寄存器 uchar SPI_Read_Reg(uchar reg) { uchar reg_val; CSN = 0; //使能SPI传输SPI_ReadWriteByte(reg); //发送寄存器号reg_val=SPI_ReadWriteByte(0xFF);//读取寄存器内容 CSN = 1;//禁止SPI传输 return(reg_val); //返回状态值 } // 向寄存器REG写一个字节,同时返回状态字节reg寄存器地址 value写入的数据 uchar SPI_RW_Reg (ucharreg,uchar value) { uchar status; CSN=0;status=SPI_ReadWriteByte(reg);//发送寄存器号SPI_ReadWriteByte(value); //写入寄存器的值 CSN=1;return(status); } //写一个数据包 ucharSPI_Write_Buf(uchar reg, uchar *pBuf, uchar bytes) { ucharstatus,byte_ctr; CSN = 0;status=SPI_ReadWriteByte(reg); for(byte_ctr=0; byte_ctr<bytes;byte_ctr++) SPI_ReadWriteByte(*pBuf++); CSN = 1; return(status); } //读一个数据包 uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars) { uchar status,uchar_ctr; CSN = 0;status = SPI_ReadWriteByte(reg);for(uchar_ctr=0;uchar_ctr<uchars;uchar_ctr++)pBuf[uchar_ctr]=SPI_ReadWriteByte(0xFF); CSN = 1; return(status); } /*******************************接 ***** 收 ***** 模 *****式 ***** 代 ***** 码 *************************************//*********************************************************************** *******************************/ /*函数:unsigned char nRF24L01_RxPacket(unsigned char* rx_buf) /*功能:数据读取后放如rx_buf接收缓冲区中/******************************************************************* ***********************************/ unsigned charnRF24L01_RxPacket(unsigned char* rx_buf) { // unsigned char revale=0; sta=SPI_Read_Reg(STATUS); // 读取状态寄存其来判断数据接收状况 SPI_RW_Reg(WRITE_REG+STATUS,sta); //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标志 if(RX_DR) // 判断是否接收到数据{ SPI_Read_Buf(RD_RX_PLOAD,rx_buf,RX_PLOAD_WIDTH);// read receive payload from RX_FIFO bufferSPI_RW_Reg(FLUSH_RX,0xFF);//清除接受FIFO return 1;//读取数据完成标志 } return 0; }/******************************************************************* *********************************/ /*函数:voidRX_Mode(void) /*功能:数据接收配置/******************************************************************* *********************************/ void RX_Mode(void) { CE=0; //SPI_RW_Reg(FLUSH_RX,0x00);//清除接受FIFO //SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // Writes TX_Address to nRF24L01 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // RX_Addr0 same as TX_Adr for Auto.Ack SPI_RW_Reg(WRITE_REG + EN_AA,0x01);//使能自动应答 Enable Auto.Ack:Pipe0 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); //连接通道0和地址 Enable Pipe0//SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x1a); // 500us + 86us, 10 retrans...1a SPI_RW_Reg(WRITE_REG + RF_CH, 40);//通信频率0~125 设置通信的频率 Select RF channel 40SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为2字节 SPI_RW_Reg(WRITE_REG +RF_SETUP,0X07); //0x07 TX_PWR:0dBm, Datarate:1Mbps, LNA:HCURR // 设置TX发射参数,0db增益,2Mbps,低噪声增益开启 SPI_RW_Reg(WRITE_REG + CONFIG, 0x0F);//配置基本工作模式的参数 CE=1; delay_ms(130); }//************************************串口初始化********************************************************* void StartUART( void ) { //波特率9600 TMOD=0x20;//设置定模式2 TH1=0xFD; TL1=0xFD; SM1=1; //设置串口SCON,为方式1 SM0=0; REN=1; //串行允许 TR1=1; //启动定时器EA=1; //中断 ES=1; //打开串口 }//************************************通过串口将接收到数据发送给PC端 ************************************** voidR_S_Byte(uint R_Byte) { ES=0; SBUF=R_Byte; while(TI==0); TI=0; ES=1; } /************************************主函数************************************************************/ uchar NRF24L01_Check(void) { ucharbuf[5]={0XA5,0XA5,0XA5,0XA5,0XA5}; uchar i;SPI_Write_Buf(WRITE_REG+TX_ADDR,buf,5);//写入5个字节的地址.SPI_Read_Buf(TX_ADDR,buf,5); //读出写入的地址for(i=0;i<5;i++) if(buf[i]!=0XA5) break; if(i!=5) return 1;//检测24L01错误 return 0; //检测到24L01 } void main() { uint i=0; CE=0; CSN=1; led=0; Init_SPI(); StartUART(); //串口初始while(NRF24L01_Check())//检测不到24L01 { delay_ms(500);delay_ms(500); R_S_Byte(0x11); } //接收模式代码 RX_Mode(); //接受模式 Delay(10);//防止编译警告 while(1){ if(nRF24L01_RxPacket(Rx_Buf)) { for(i=0;i<TX_PLOAD_WIDTH;i++) { R_S_Byte(Rx_Buf[i]); //发送接收到的数据到电脑 } } Delay(10); } }。
nRF24LE1芯片简单介绍

nRF24LE1芯片简单介绍NRF24LE1特性NRF24LE1采用了NORDIC最新的无线和超低功耗技术,在一个极小封装中集成了包括2.4G无线传输,增强型51 FLASH高速单片机,丰富外设及接口等的单片FLASH芯片,是一个综合了性能及成本的完美结合,很适合应用于各种2.4G的产品设计。
NRF24LE1=2.4GHz+Flash51+ADC+PWM+I2C+RTC+WDT+RNG+AES++COMP+UART+SPI….应用:无线鼠标,无线键盘,无线摇杆,PC外设,玩具,RFID,无线遥控,医学参数监测,线数字语音,工业控制及无线数据采集主要特性:1、内嵌 2.4GHz低功耗无线收发内核NRF24L01+, 250kbps,1Mbps,2Mbps空中速率2、高性能51内核,16kbytes Flash,1Kbyte data RAM,1Kbyte NVRAM3、具有丰富的外设资源,内置128bit AES硬件加密,32位硬件乘除处理器,6-12位ADC,两路PWM,I2C,UART,硬件随机数产生器件,WDT,RTC,模拟比较器4、提供QFN24,QFN32,QFN48多种封装,提供灵活应用选择5、灵活高效的开发手段,支持Keil C,ISP下载,是开发无线外设,RFID,消费产品,无线数传等有力工具及平台。
带Gazell协议Gazell协议是NORDIC专为2.4G无线桌面和其他无线应用设计推出的无线通信协议,配合NRF24LE1/NRF24LU1P使用,客户可以专注于应用设计,无需花费大量的精力在无线链路上。
低功耗Gazell协议是低功耗协议,可设计为纽扣电池供电的应用。
抗干扰性Gazell协议完成自动跳频及抗干扰的无线通信,具有在复杂环境下优异的抗干扰性能。
低延时Gazell协议充分利用NRF高速通信的特性,具有低延时特性,特别满足PC周边及其他应用。
高安全性Gazell协议具有AES 128bit 高强度加密,确保数据传输的安全可靠。
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
STM8的SPI口NRF24L01例程

//定时器初值*定时器分频*系统分频/16MHZ=定时时
间
//250*8*2/16mhz=250us
TIM4_IER |= 0x01;
//- - - - - - - UIE(Enable TIM4 OVR interrupt)
TIM4_CR1 |= 0x81; //ARPE - - - OPM URS UDIS CE_PINN
//Configure TIM3 prescaler = 8192
TIM3_CR1 |= 0x81;
//*/
//------------------------------//
TIM4_PSCR = 0x03;
//PSC[2:0] [1.2.4.8.16.32.64.128]
TIM4_ARR = 0xfA;
//BIT[2:0] Configure TIM2 prescaler =1 //ARPE - - - OPM URS UDIS CE_PINN
// TIM3 CC1 control LED Blinking //Output mode PWM2.
//CC polarity low,enable PWM output
/////////////////////////////////////////////
//
/////////////////////////////////////////////
delay_time(u16 i)
{ u16 j;
for(j=0;j<i;++j)
{ while(!f_250us)
TIM3_ARRH = 0x03; TIM3_ARRL = 0xff;
//自动从装载寄存器,先装高字节
nrf24l01是适合初学入门的无线模块

24l01的多机通信采用频分多子的方法,只需要在接受端对不同的通道配置地址即可。
发送端使用相应的地址作为本机地址。
接受数据时通过读取STATUS 中相关位即可得知接收的是哪个通道的数据。
以下仅给出多对一的通信代码。
至于一对多,以及多对多等情况读者可以自行研究了。
只给出相关部分,其他部分请参考前两篇文章------------------------------------------------------------------------------------------接受端uint const ADDRESS0[ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //频道0接收地址uint const ADDRESS1[ADR_WIDTH]= {0xc4,0xc3,0xc2,0xc1,0xc0}; //频道1接收地址uchar who=0xff;//**************************************************************** ************************/*NRF24L01初始化//**************************************************************** ***********************/void init_NRF24L01(void){us(100);CE=0; // chip enableCSN=1; // Spi disableSCK=0; // Spi clock line init high//SPI_Write_Buf(WRITE_REG + TX_ADDR,ADDRESS0, ADR_WIDTH); //写本地地址SPI_Write_Buf(WRITE_REG + RX_ADDR_P0,ADDRESS0,ADR_WIDTH); //频道0地址SPI_Write_Buf(WRITE_REG + RX_ADDR_P1,ADDRESS1,ADR_WIDTH); //频道1地址SPI_RW_Reg(WRITE_REG + EN_AA, 0x03); //频道0、1自动应答SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x03); //允许频道0、1SPI_RW_Reg(WRITE_REG + RF_CH, 0); //设置信道工作为2.4GHZ,收发必须一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //0接收数据长度SPI_RW_Reg(WRITE_REG + RX_PW_P1, RX_PLOAD_WIDTH); //1接收数据长度SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //设置发射速率为1MHZ,发射功率为最大值0dB}/***************************************************************** *************************************//*函数:unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)/*功能:数据读取后放如rx_buf接收缓冲区中/***************************************************************** *************************************/unsigned char nRF24L01_RxPacket(unsigned char* rx_buf){unsigned char revale=0;sta=SPI_Read(STATUS); //读取状态寄存其来判断数据接收状况if(RX_DR) //判断是否接收到数据{CE = 0;SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);revale =1;who=sta&0x0e;who|=0xf0; //通道0:who==0xf0;通道1:who==0xf2}SPI_RW_Reg(WRITE_REG+STATUS,0xff); //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标志CSN=0;SPI_RW(FLUSH_RX);CSN=1;return revale;}void main(void){uchar i;uchar RxBuf[TX_PLOAD_WIDTH];init_NRF24L01() ;StartUART();ms(6000);while(1){//如果接收到数据,发往PCSetRX_Mode();if(nRF24L01_RxPacket(RxBuf)){R_S_Byte(who);ms(100);for(i=0;i<TX_PLOAD_WIDTH;i++){R_S_Byte(RxBuf[i]);ms(100);}}}}-------------------------------------------1----------------------------------------------------发送uint constADDRESS0[ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};其余与双工通信相同-------------------------------------------2----------------------------------------------------发送uint constADDRESS1[ADR_WIDTH]= {0xc4,0xc3,0xc2,0xc1,0xc0}; //频道1接收地址其余与双工通信相同以上就是简要的代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NRF24LE1编程器&烧写器使用说明
1、 使用真正USB2.0芯片,稳定可靠,不会出现识别不了USB 设备的情况
2、 全新升级! 支持芯片丰富,并可通过更新固件支持更多器件(升级固件无须编程器)
3、 体积小,携带方便
4、 及时修复各种问题并不断添加功能
5、 支持HEX 及BIN 编程文件格式
通讯接口:USB2.0
供电方式:USB 供电,目标板无需供电 接口驱动:支持5V 和 3.3V
支持芯片:51 A VR STC nRF24LXX PL3K 系列 EEPROM … 软件升级:支持升级以支持更多芯片 尺寸:4.5*2cm
Pin1
Pin2
Pin3Pin5Pin7Pin9 Pin4Pin6Pin8Pin10
连接目标板前请一定要看看是3.3V还是5V供电并正确设置跳线,烧写NRF24LE1需设置3.3V供电!
NRF24LE1程序下载烧写举例:
1.将烧写器的排线连接到读写器底板上的接口座。
(注意:烧写程序时底板上只能插上一个读写模块或标签,否则会引起冲突而无法完成烧写下载)
2.将烧写器USB接口插入电脑,这时可能会提示安装驱动,直接定位到mPro文件夹位置完成驱动安装。
3.烧写时,读写器可不用上电,直接由烧写器供电。
打开mPro软件界面,如下图所示:选择nRF24LE1芯片类型,然后点击“载入编程文件”,选取所要烧写的Hex文件,最后按图上所示在烧写选项“检测器件”、“擦FLASH”、“写FLASH”、“校验”前打勾,点
击“自动”即完成烧写下载工作。