无线通信系统课程设计.doc
西安邮电大学通信及信息工程学院无线通信系统课程设计 报告(2017 2018学年 第一学期) 实验名称: 无线通信系统课程设计_ 学生姓名: _ 专 业: _ 学 号: _ 指导教师: _摘要温湿度是生活生产中的重要的参数。本设计为基于单片机的温湿度检测系统,采用模块化、层次化设计。用新型的智能温湿度传感器DHT11主要实现对温度、湿度的检测,将温度湿度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机STC89C52进行数据的分析和处理。然后将温湿度数据通过NRF24L01发送数据,实现点对点或多点对点的无线通信。显示部分采用LCD1602液晶显示所测温湿度值。系统电路简单、集成度高、工作稳定、调试方便、检测精度高,具有一定的实用价值。关键词:单片机;温湿度传感器;无线通信目录1.绪论12.课程设计任务及要求22.1设计任务22.2设计要求23.系统总体设计方案33.1方案论证33.2系统总体设计33.3工作原理44.系统硬件设计54.1.系统整体设计54.2.各单元电路设计55系统软件设计105.1.主程序流程设计115.2.子程序设计156系统调试157总结178参考文献189附录191.绪论温湿度的检测及数据采集是工业生产过程必不可少的环节之一,在生产中,温湿度的高低对产品的质量影响很大。由于温湿度的检测控制不当,可能使我们导致无法估计的经济损失。为保证日常工作的顺利进行,首要问题是加强生产车间内温度及湿度的监测工作,但传统的方法过于粗糙,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。目前,在低温条件下(通常指100以下),温湿度的测量已经相对成熟。同时通过无线通信系统进行温湿度数据的收发,能够将温湿度的检测距离拉长几个数量级,而且节约了布线开销成本,利用新型单总线式数字温度传感器实现对温度的测试及控制得到更快的开发。但人们对它的要求越来越高,要为现代人工作、科研、学习、生活提供更好的更方便的设施就需要从数字单片机技术入手,一切向着数字化,智能化控制方向发展。对于国内外对温湿度检测的研究,从复杂模拟量检测到现在的数字智能化检测越发的成熟,随着科技的进步,现在的对于温湿度研究,检测系统向着智能化、小型化、低功耗的方向发展。在发展过程中,以单片机为核心的温湿度控制系统发展为体积小、操作简单、量程宽、性能稳定、测量精度高,等诸多优点在生产生活的各个方面实现着至关重要的作用。2.课程设计任务及要求2.1设计任务本课程设计的主要任务是使用以STC89C52芯片为数据处理及运算模块,使用DHT11温湿度传感器为采集数据模块,使用NRF24L01为数据收发模块,实现温湿度的采集及发送、接收功能。2.2设计要求实现温湿度数据的采集以及通过点对点或两点对一点的通信来传输数据。湿度精度为±5%RH,温度±2,量程湿度20-90%RH,温度050。3.系统总体设计方案3.1方案论证本系统使用PCB作为电路板,核心器件是STC89C52芯片、DHT11温湿度传感器以及NRF24L01。依靠DHT11采集数据、STC89C52处理数据、NRF24L01传输数据实现采集温湿度数据并无线传输至接收端的功能。系统电路简单、集成度高、工作稳定、调试方便、检测精度高,具有一定的实用性。3.2系统总体设计图3.1 系统总体设计图图3.1为实现两点对一点的温湿度数据无线通信系统总设计图。此系统分为三个子系统,分别是左上角的发送端1、右上角的发送端2和下方的接收端。每个子系统又分为三个模块,分别是主芯片模块、液晶显示模块以及温湿度传感器模块。最后如有需要,还可以在接收端的输出口连接PC上位机,以实现数据在PC上的处理。 图3.2 发射端程序流程图 图3.3 接收端程序流程图3.3工作原理本系统是以STC89C52单片机为核心的一套多点温湿度采集和无线传输系统,由温湿度采集、数据传输、数据处理三个部分组成,主要包括单片机系统,无线传输系统,电源电路,复位电路,温湿度检测,显示系统等模块。单片机STC89C52是整个硬件电路的核心,它一方面控制无线传输模块NRF24L01发送、接受数据;另一方面,将收到的数字温湿度数据送到LCD1602显示器显示,可以直观的看到测量点的温湿度并进行监测。整个系统的软件设计是通过c语言程序对发射机、接收机的STC89C52编程来实现其控制功能。4.系统硬件设计4.1.系统整体设计图4.1 系统硬件总体结构用新型的智能集成温温度传感器DHT11主要实现检测温度、湿度的检测,将温度湿度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机STC89C52进行数据的分析和处理,之后一方面送入无线传输器件NRF24L01进行信号的发送,另一方面送入显示器显示;接收端则是通过NRF24L01接收数据后送入STC89C52后再送入显示器显示。4.2.各单元电路设计4.2.1温湿度传感器 4.2.1.1 DHT11产品概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性及卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并及一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。4.2.1.2 引脚说明:引脚号 引脚名称 类型 引脚说明1 VCC 电源 正电源输入,3V-5.5V DC2 DATA 输出 单总线,数据输入/输出引脚3 NC 空 空脚,扩展未用4 GND 地 电源地图4.2 DHT11连接图4.2.2单片机STC89C52STC89C52是一种低功耗、高性能CMOS八位微控制器,具有8K在系统可编程Flash存储器,使用ATMEL公司高密度非易失性存储器技术制造,及工业80C51产品指令和引脚完全兼容。片上Flash允许ROM在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使其为众多嵌入式控制应用系统提供灵活的解决方案。 STC89C52的功能以及引脚完全可以满足本系统对于控制核心的要求,且其成本低,应用广泛,相关技术的使用已经很成熟,开发难度相对不高,所以,选择其作为发射机、接收机的主控芯片。 图4.3 STC89C52引脚图图4.4 单片机的复位及晶振电路4.2.3 NRF24L01无线模块本系统设计采用无线方式向终端传输温湿度数据。本系统无线输模块采用单片射频收发芯片NRF24L01。4.2.3.1 NRF24L01的管脚NRF24L01有8个引脚,各个引脚的具体说明如表4.1所示。表4.1 NRF24L01各个引脚说明管脚名称管脚功能方向pin1VDD正电源输入pin2CE工作模式选择,RX或TXI Pin3CSNSPI片选使能,低电平使能Ipin4SCKSPI时钟Ipin5MOSISPI输入Ipin6MISOSPI输出Opin7IRQ中断输出Opin8GND电源地4.2.3.2无线传输模块的硬件设计 本系统中两个发射机各有一个无线发射模块,一个接收机含有一个无线接收模块。由于NRF24L01兼备发送及接收功能,所以发射、接受模块全部采用NRF24L01,及主机STC89C52的硬件连接也全部相同。NRF24L01无线模块直接及STC89C52连接,电路图如图4.5所示。图4.5 NRF24L01无线模块电路图4.2.4显示模块LCD1602液晶显示是一种常用的显示方式。LCD1602显示内容十分丰富,能够显示字母,符号和数字等192种字符,且可同时显示16x2个字符,满足了本系统对于多组数据同时显示的要求。显示屏共有16个引脚,节省了单片机的大量I/O口,且电路连接简单,容易焊接。此种显示方式响应也较快,亮度可调,成本低,是显示终端的最佳选择。 接收机收到温湿度数据后,利用LCD1602显示两个监测点A1、A2的温湿度信息。LCD1602液晶显示芯片采用标准的16脚接口,其各个引脚及说明如表3.6所示。表4.2 LCD1602各个引脚的说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据I/O2VDD电源正极10D3数据I/O3VL液晶显示偏压11D4数据I/O4RS数据/命令选择12D5数据I/O5R/W读/写选择13D6数据I/O6E使能信号14D7数据I/O7D0数据I/O15BLA背光源正极8D1数据I/O16BLK背光源负极 LCD1602电路连接图如图4.6所示。 图4.6 LCD1602模块电路图5. 系统软件设计5.1主程序流程设计本系统由两个发射机A1、A2及一个接收机B组成,可以设计出发射机的总体程序流程图和接收机的总体程序流程图。发射机程序主要是温湿度采集处理程序,NRF24L01发送程序。接收机主要是数据接收程序,液晶显示程序。5.1.1发射机的总体软件设计发送部分的总体设计思路为:初始化温度传感器DHT11;传感器测得温湿度;把温湿度值写入待发射数据;初始化NRF24L01无线模块;将温湿度发送给接收机,其流程图如图5.1所示 图5.1 发射机程序流程图5.1.2 接收机的总体软件设计接收部分的总体设计思路是:初始化NRF24L01无线模块和LCD1602显示模块;接收温湿度数据;在LCD1602上分组显示,其程序流程图如图5.2所示。 图5.2 接收机程序流程图5.2.子程序设计5.2.1 温湿度采集模块软件设计 发射机利用DHT11进行温湿度采集,DATA引脚连接于STC89C52的P17口以进行数据传输。NRF24L01通过DATA总线发送出的温湿度数据分小数部分和整数部分,共40bit。数据格式为:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验。本系统DHT11的工作流程如下:开机后,DHT11处于低功耗模式,当它检测到STC89C52发送出的开始信号后,其转换到高速模式,开始进行温湿度采集,并以以上所说的数据格式发送至STC89C52,然后进入低速模式。单片机可以选择读取温湿度数据。DATA总线空闲状态为高电平,DHT11接收到的开始信号必须是大于18ms的低电平,否则,DHT11便无法视其为开始信号。开始信号结束后,DHT11会发送80us的低电平响应信号。STC89C52发送开始信号后,需要等待20-40us,然后读取DHT11回馈的低电平响应信号。若读取总线为低电平,则说明DHT11收到了开始信号。DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短决定了数据位是0还是1。当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线再次进入空闲状态。根据DHT11及单片机的数据通信时序,可以设计出温湿度采集处理的程序流程图,如图5.3所示。 图5.3 温湿度采集程序流程图5.2.2无线传输模块软件设计发射机含有数据发射模块,接收机含有数据接收模块,两种模块都采用NRF24L01。所以在进行无线数据通信时,需要把发射机的NRF24L01配置为发射模式,把接收机的NRF24L01配置为接收模式。5.2.2.1数据发送模块软件设计NRF24L01的发送模块程序流程图如图5.4所示。图5.4 发送模块程序流程图5.2.2.2 数据接收模块软件设计接收机要想显示温湿度,就必须要通过NRF24L01接收两个发射机发送的温湿度数据。NRF24L01的接收模块程序流程图如图5.5所示。 图5.5 接收模块程序流程图5.2.3 显示模块软件设计 显示模块软件设计相对简单,首先将LCD1602初始化,然后STC89C52通过数据传输端口P0.0P0.6向LCD1602传送温湿度数据信息。若LCD1602正确接收到数据信息,则显示收到的温湿度数据。延时0.8S后,重新开始读取下一个时间段温湿度数据,进入循环。若LCD1602读取数据错误,则直接返回,重新读取。程序流程图如图5.6所示图5.6 LCD1602显示模块程序流程图6.系统调试整个系统的电路焊接完成后,开始进行整个系统的调试。在整个调试的过程中主要使用Keil vision5软件和pz-isp软件。首先对程序进行设计以及编译。程序的编译是一个很重要的过程,他是这整个系统关键。在编写代码的过程中,通过设计的流程图,按照自己的思路进行定义以及调用函数,编译调试可以让我们清楚地认识到函数的调用顺序以及函数的调用情况。并且我们可以通过调试发现其中的错误,并通过调试改正过来。通过不断地对代码进行调试,从而将设计完美的实现。程序编译完成后利用pz-isp软件把三个程序分别烧录进发射机A和接收机B的STC89C52单片机中。完成后,对系统进行功能测试,测试流程如下。1.启动发射机A和接收机B。如图6.1所示。A的初始温度21°C、湿度54%图6.1 A、B初始温湿度2. 将电烙铁放在A的温湿度传感器DHT11旁边,接收机的液晶屏显示如图6.2所示。可以看到,A采集点的温度上升至22。湿度下降至46%RH。可知发射机A工作正常,接收机能正常显示温湿度数据,达到了本设计的对于无线采集某点温湿度要求。 图6.2 A、B温湿度发生改变综上可知,本系统完整的实现了预设功能,本次设计制作成功。7.总结本系统是基于51单片机的多点温湿度采集和无线传输系统,由两个发射模块及一个接收模块组成。发射机利用数字温湿度传感器DHT11采集环境温湿度数据并传送给STC89C52单片机,单片机进行数据处理后利用无线传输模块NRF24L01进行无线发送。接收模块的NRF24L01将接收到的数据传给STC89C52单片机,最后用数字显示屏LCD1602将经过单片机处理后的温湿度数据显示出来。本设计基于51单片机,能够完成同时远距离采集两点温湿度并在系统终端进行显示的功能,以达到监测多点环境温湿度的目的。结果表明,本系统能够方便、高效、及时地测量出两个采集点的温湿度。系统成本低,性能好,制作相对简单。远程测量能达到百米左右,基本满足日常生活的测量要求。可以轻松添加多个监测点,程序移植性十分好。系统可扩展性也比较强,在此程序框架上添加其他模块程序,并加入相应的硬件,可以实现其他功能。如温湿度异常报警功能,温湿度自动调节功能。通过这次为期两周的实习,不仅温习了之前学习的电烙铁焊锡丝的焊接技术,更通过学习系统的各个模块电路原理图,回顾了相关知识。同时,对单片机软件的编写也是一种全新的学习,温故又知新。可以说此次的实习是从理论和实践一举两得的实习。8.参考文献1丁向荣,单片机应用系统及开发技术项目教程,北京:清华大学出版社,20152丁永红,孙运强,基于nRF2401的无线数传系统设计,北京:国外电子测量技术,20083魏立峰,王宝兴,单片机原理及应用技术,北京:北京大学出版社,20164李文仲,段朝玉,短距离无线数据通信入门及实战,北京:北京航空航天大学出版社,20065喻金钱,喻斌,短距离无线通信详解:基于单片机控制,北京:北京航空航天大学出版社,20099. 附录附录1:系统总体结构电路原理图附录2:程序清单1.发送端#include <reg52.h>#include <intrins.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned int/dht接口sbit io = P17;/lcd接口typedef bit BOOL;sbit rs = P25;sbit rw = P26;sbit ep = P27;/nrf接口#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 / 保留/*寄存器地址*/#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接收数据地址#define RX_ADDR_P2 0x0C / 频道2接收数据地址#define RX_ADDR_P3 0x0D / 频道3接收数据地址#define RX_ADDR_P4 0x0E / 频道4接收数据地址#define RX_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栈入栈出状态寄存器设置#define TX_ADR_WIDTH 5 #define RX_ADR_WIDTH 5 #define TX_PLOAD_WIDTH 8 #define RX_PLOAD_WIDTH 8 sbit SCK = P20;sbit MISO = P21;sbit IRQ = P22;sbit MOSI = P23;sbit CSN = P24;sbit CE = P37;uchar bdata sta;sbit MAX_RT = sta4;sbit TX_DS = sta5;sbit RX_DR = sta6;uchar const TX_ADDRESSTX_ADR_WIDTH = 0x34,0x43,0x10,0x10,0x01; /本地地址/主函数数据sbit LED = P35;uchar TxBuf8;extern uchar RH, RL, TH, TL;/延时模块1void delay_us(uint i) /误差 0us uchar a,b,c;for(c=i;c>0;c-) for(b=1;b>0;b-) for(a=32;a>0;a-);void delay(uchar ms) uchar i; while(ms-) for(i=0;i<250;i+); void delay1()/延时10us uchar i; i-; i-; i-; i-; i-; i-; void longdelay(uchar s) /长延时 while(s-) delay(60); /延时模块2void Delay_t(uint j) uchar i;for(;j>0;j-)for(i=0;i<27;i+);void delay2(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/lcd模块BOOL lcd_bz()/测试LCD忙碌状态 BOOL result; rs = 0; rw = 1; ep = 1; result = (BOOL)(P0 & 0x80); ep = 0; return result; void write_cmd(uchar cmd)/ 写指令 while(lcd_bz(); rs = 0; rw = 0; ep = 0; P0 = cmd; ep = 1; ep = 0; void write_addr(uchar addr)/写地址 write_cmd(addr|0x80); /“位或”,让addr的bit7强制赋值为1然后传入函数 0x80=10000000Dvoid write_byte(uchar dat)/写字节 while(lcd_bz(); rs = 1; rw = 0; ep = 0; P0 = dat; ep = 1; ep = 0; void lcd_init()/ 初始化 write_cmd(0x38); delay(1); write_cmd(0x08); delay(1); write_cmd(0x01); delay(1); write_cmd(0x06); delay(1); write_cmd(0x0c); delay(1);void display(uchar addr, uchar q)/在某一地址上显示一字节 delay(10); write_addr(addr); write_byte(q); longdelay(2); /dht模块uchar data_byte; uchar RH, RL, TH, TL;uchar receive_byte()/接收一个字节 uchar i,temp,count;for(i=0;i<8;i+) count=2; while(!io)&&count+);/等待50us低电平结束 delay1(); delay1(); delay1(); temp=0; if(io=1) temp=1; count=2; while(io)&&count+); if(count=1)break; data_byte<<=1; data_byte|=temp; return data_byte;void receive()/接收数据 uchar T_H,T_L,R_H,R_L,check,num_check; uchar count; io=0;Delay_t(180); io=1;delay1();delay1();delay1(); delay1(); io=1; if(!io)/读取DHT11响应信号 count=2;while(!io)&&count+);/DHT11高电平80us是否结束 count=2; while(io)&&count+); R_H=receive_byte(); R_L=receive_byte(); T_H=receive_byte(); T_L=receive_byte(); check=receive_byte(); io=1; num_check=R_H+R_L+T_H+T_L; if(num_check=check) RH=R_H; RL=R_L; TH=T_H; TL=T_L; check=num_check; /nrf模块uchar SPI_RW(uchar byte)uchar bit_ctr;for(bit_ctr=0;bit_ctr<8;bit_ctr+) / 输出8位MOSI = (byte & 0x80); / 获得byte的最高位数据byte = (byte << 1); / SCK = 1; / byte |= MISO; / 获得从MISO获得的一位数据SCK = 0; / return(byte);/最后返回从MISO读出的数据 /*读写寄存器函数*/uchar SPI_RW_Reg(uchar reg, uchar value)uchar status;CSN = 0; / CSN拉低,启动SPI通信status = SPI_RW(reg); /返回从MISO读出的数据,status应为上次向该寄存器内写的valueSPI_RW(value); / 向寄存器中写入数据CSN = 1; / CSN拉高,终止SPI通信return(status); / 返回2401 reg寄存器的状态/*读出从机相关寄存器的数据*/uchar SPI_Read(uchar reg)uchar reg_val;CSN = 0; SPI_RW(reg); reg_val = SPI_RW(0); CSN = 1; return(reg_val); /*用于写数据,reg为寄存器地址 pBuf为待写入数据地址 bytes为写入数据的个数*/uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar bytes)uchar status,byte_ctr;CSN = 0; / SPI使能status = SPI_RW(reg);for(byte_ctr=0; byte_ctr<bytes; byte_ctr+)SPI_RW(*pBuf+);/指向下一个数据 CSN = 1; return(status); / 返回24l01的状态/*用于读数据,reg为寄存器地址,pBuf为待读出数据地址,bytes为读出数据的个数*/uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar bytes)uchar status, byte_ctr;CSN = 0;status = SPI_RW(reg);for(byte_ctr=0;byte_ctr<bytes;byte_ctr+)pBufbyte_ctr = SPI_RW(0);CSN = 1;return(status);/*发送tx_buf中的数据*/void TxPacket(uchar * tx_buf)CE=0;SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);/StandBy I模式SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); / 装载接收端地址SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH);SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); / 频道0自动ACK应答允许SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允许接收地址只有频道0,如果需要多频道可以参考Page21SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x0a); SPI_RW_Reg(WRITE_REG + RF_CH, 0x40); / 设置信道工作为2.4GHZ,收发必须一致/SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /设置接收数据长度,本次设置为4字节SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); / 装载数据SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); / IRQ收发完成中断响应,16位CRC,主发送CE=1; /置高CE,激发数据发送delay_us(10);/*设定24L01为接收方式*/void RX_Mode(void)CE=0;SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_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, 0x40); / 设置信道工作为2.4GHZ,收发必须一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /设置接收数据长度,本次设置