nrf24l01的收发信号.doc_第1页
nrf24l01的收发信号.doc_第2页
nrf24l01的收发信号.doc_第3页
nrf24l01的收发信号.doc_第4页
nrf24l01的收发信号.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

王晖 曹恒 万东胜2014无线电电子设计大赛 题 目: NRF24L01的收发信号 队 号: 三个烙铁匠 队 员: 王晖 曹恒 万东胜 摘要随着现代电子技术的飞速发展,通信技术也取得了长足的进步。在无线通信领域,越来越多的通信产品大量涌现出来。但设计无线数据传输产品往往需要相当的无线电专业知识和价格高昂的专业设备,因而影响了用户的使用和新产品的开发。nRF24L01是一个为433MHzISM频段设计的无线收发芯片,它为短距离无线数据传输应用提供了较好的解决办法, 使用nRF24L01降低了开发难度,缩短了开发周期,使产品能更快地推向市场。本文提出了一种应用于无线数据收发系统的设计思路及实现方案,给出了基于无线射频芯片nRF24L01和STC89C52单片机的无线数据传输模块的设计方法,详细分析了各部分实现原理,并对系统的传输距离、传输数据的正确性进行了测试。试验表明,该系统性能稳定,具有较强的抗干扰能力,有较强的实用价值。关键词:无线通信;无线数据传输模块;单片机;射频 AbstractWith the rapid development of modern electronic technology, communication technology has also made great progress. In the field of wireless communication, more and more communication products have sprung up in large quantities. But the design of wireless data transmission products often require considerable radio of the high price of professional knowledge and professional equipment, thus affecting the users use and development of new products. NRF24L01 is a designed for 433 MHZ ISM band wireless transceiver chip, it for the short distance wireless data transmission application provides a better solution, using nRF24L01 reduces the development difficulty, shorten the development cycle, can make the product to market faster. This paper puts forward a kind of applied to wireless data transceiver system design idea and implementation scheme, and is given based on wireless rf chip nRF24L01 and STC89C52 single-chip wireless data transmission module, the design method of the realization principle of each part are analyzed in detail, and the transmission distance of the system, the correctness of the data transmission was tested. Tests show that the system performance is stable, strong anti-interference ability, a strong practical value.Keywords:Wireless communication;Wireless data transmission module;Single chip microcomputer;Radio frequency 目 录 前言 11系统设计11.1系统设计2 1.2实现过程22系统组成32.1 射频收发控制模块32.1.1 无线收发芯片nRF24L01介绍32.1.2 稳压部分52.2单片机控制部分52.2.1 STC89C52RC功能介绍62.2.2 内部结构62.2.3 串口通信82.3 显示部分93软件设计103.1 主程序流程图113.2 数据收发子程序流程图114测试结果及分析124.1 硬件电路测试134.2 系统测试134.2.1 测试方法134.2.2 功能测试及分析135结论146参考文献15附录1:无线发射系统电路图16附录 2:发送程序 17前言伴随着短距离、低功率无线数据传输技术的成熟,无线数据传输被越来越多地应用到新的领域。与有线通信方式相比,无线通信以其不需铺设明线,使用便捷等一系列优点,在现代通信领域占重要地位。但以往的无线产品存在范围和方向上的局限。例如,一些无线产品在使用时,无法将信息反馈给控制者;还有一些无线产品不能很好地显示参数或状态信息,如果能在系统中增加一块小型液晶显示电路,产品不仅能向用户显示其状态或状态的改变,而且可以大大降低成本。正如人们所发现的,只要建立双向无线通信-双工通信并且选无线数据传输模块基于微功耗单片射频收发器NRF24L01设计,采用89C52单片机完成数据的处理和控制择成本低的收发芯片,就会出现许多新应用。本次设计主要是利用无线收发电路,加上单片机控制与发光二极管制成一简易的信号收发系统。考虑到目前市场上的一些需求,设计的主要要求是方案成本低,体积小,低功耗,集成度高,尽量无需调外部元件,传输时间短,接口简单。 第一章 系统设计1.1 系统设计无线数据传输系统有点对点,点对多点和多点对多点三种。本系统由于实际应用的需要,接收器和数据终端之间的数据传输通过NRF24L01进行,构成点对点无线数据传输系统。无线数据收发系统可以分为无线收发控制电路、单片机控制电路、显示电路和按键电路四部分组成,系统原理框如图1-1所示:NRF24L01NRF24L01小灯单片机系统按键单片机系统 图1-1 无线数据收发系统原理图1.2 实现过程当我们需要发送数据时,使用按键来输入所需发送的信息。按键与单片机的STC89C52RC的P1.0-P3.5口相接,单片机的 P1.0口控制信息的发送与接收,并且TXD端与收发器输入端相连,通过TXD将数据传入收发器,收发器接收到数据后,通过FSK调制,将信号发送出去;接收端的收发器通过解调,将载波信号转换为数字信号,完成信息传输过程;收发器的输出端通过RXD端将数字信号输入到单片机;单片机将数据传送到显示器,这样就完成了一次数据发送与接收并显示的过程。本系统采用的是半双工传送方式。 所谓半双工就是通信的双方均具有发送和接收信息的能力,信道也具有双向传输性能,但是,通信的任何一方都不能同时既发送信息又接收信息,即在指定的时刻,只能沿某一个方向传送信息。所以上述实现过程只介绍了由一方传送到另一方的过程,而相反方向与其原理相同。第二章 系统组成2.1射频收发控制模块该模块主要由NRF24L01构成,RF24L01是一款工作在2.42.5GHz 世界通用ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockBurst模式控制器、功率放大器、晶体振荡器调制器、解调器。输出功率频道选择和协议的设置可以通过SPI接口进行设置。2.1.1 无线收发芯片nRF24L01介绍1. 主要引脚功能图2-1NRF24L01引脚图表2-1 NRF24L01主要引脚说明表接口电路管脚说明管脚名称管脚功能说明1GND接地电源电源地2VCC接电源正电源正。范围在1.9-3.6V。3CE模块输入信号由单片机给出信号控制NRF24L01模块内部射频电路工作与否4CSN模块输入信号模块的片选信号,单片机发出信号来控制允许向模块读或写数据5SCK模块输入信号串行时钟信号。由单片机发出,来控制模块的读或写的运作节拍6MOSI模块输入信号是单片机向NRF24L01发送数据的接口7MISO模块输出信号是NRF24L01模块向单片机送数据的接口8IRQ模块输出信号是NRF24L01产生中断信号发送给单片机的接口2. 内部结构图2-2NRF24L01无线收发芯片内部结构图3. NRF24L01无线模块特点:(1)GFSK 调制:(2)硬件集成 OSI 链路层;(3)具有自动应答和自动再发射功能;(4)片内自动生成报头和 CRC 校验码;(5)数据传输率为 l Mb/s 或2Mb/s;(6)SPI 速率为0 Mb/s10 Mb/s;(7)125 个频道:(8)与其他 nRF24 系列射频器件相兼容;4.GFSK调制本系统中的NRF24L01是具备GFSK调制的无线收发芯片。GFSK 高斯频移键控调制是把输入数据经高斯低通滤波器预调制滤波后,再进行FSK调制的数字调制方式。它在保持恒定幅度的同时,能够通过改变高斯低通滤波器的3dB带宽对已调信号的频谱进行控制,具有恒幅包络、功率谱集中、频谱较窄等无线通信系统所希望的特性。因此,GFSK调制解调技术被广泛地应用在移动通信、航空与航海通信等诸多领域中。2.1.2 稳压部分由于NRF24L01的VCC脚接电压范围为3.3V3.6V之间,不能在这个区间之外,超过3.6V将会烧毁模块,因此选用3.3V电压。由于作品采用的是自制的稳压电源,输出端为5v,所以采用串联电阻的方式进行分压对nrf24l01输入3.3v的电压,但在实际测试中发现串联1k欧姆的电阻后收发芯片两端的电流会产生较大的误差,是芯片无法正常工作,于是采用在稳压电源输出端串联发光二极管的方法分去1.7v的电压,达到对芯片提供3.3v电压的效果2.2单片机控制部分控制电路主要组成部分为单片机STC89C52RC,通过两个单片机最小系统用其控制NRF24L01的工作模式和SPI输入输出,从而调整收发状态。2.2.1 STC89C52RC功能介绍STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。2.2.2 内部结构STC89C52RC单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O口、串行I/O口和中断系统等几大单元以及数据总线、地址总线和控制总线三大总线构成。图2-4 STC89C52RC芯片引脚图(1) 电源和晶振VCC:供电电压。GND:接地。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。(2) I/O口 P0口P0口的字节地址为80H,位地址为80H87H。P0口既可以作为通用I/O口使用,也可以作为单片机系统的地址/数据线使用。当作为输出口使用时,由于输出电路是漏极开路,必须外接上拉电阻才能有高电平输出。 P1口P1口的字节地址为90H,位地址为90H97H。P1口只能作为通用I/O口使用。当作为输出口使用时,已能对外提供推拉电流负载,外电路无需再接上拉电阻;当作为输入口使用时,应先向其锁存器写入“1”,使输出驱动电路的FET截止。 P2口P2口的字节地址为0A0H,位地址为0A0H0A7H。P2口用于为系统提供高位地址,但只作为地址线使用而不作为数据线使用。此外,P2口也可作为通用I/O口使用。 P3口P3口的字节地址为0B0H,位地址为0B0H0B7H。P3口可以作为通用I/O口使用,但在实际应用中它的第二功能信号更为重要。P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)(3) 4根控制线 RST:复位信号。保持RST脚两个机器周期以上的高电平,就可以完成CPU系统复位操作,使系统的一些单元内容回到规定值。 /PSEN:外部程序存储器读选通信号。在读外部ROM时,/PSEN有效(低电平),以实现外部ROM单元的读操作。 /EA/VPP:访问程序存储器控制信号。当/EA信号为低电平时,对ROM的读操作限定在外部程序存储器;而当/EA为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。 ALE/PROG:地址锁存控制信号。在系统扩展时,ALE用于控制P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于ALE是以六分之一晶振频率的固定频率输出的正脉冲,因此也可作为外部时钟或外部定时脉冲使用。2.2.3 串口通信通信主要有两种方式:并行通信和串行通信。并行通信是在传送数据过程中每个字节的各位同时进行传送的通信方式,而串行通信14是指每个字节的各位分别进行传送的通信方式。1 串口通信方式STC89C52串行口可设置四种工作方式,可有8位、10位和11位帧格式。本系统中,STC89C52RC采用串行口工作于方式1,即每帧10位的异步通信格式:1位起始位,8位数据位(低位在前),1位停止位。当SM0=0,SM1=1时,串行口选择方式1。其帧格式为: 停止起始D6D7D0D1D2D3D4D5 图2-5 帧格式图2 串行通信控制寄存器(1) 串行控制寄存器(SCON)SCON的地址为98H,用于选择串行口的工作方式和指示串行口的工作状态。各位含义如下: SM0、SM1:串行口工作方式选择位。 SM2:多机通信选择位。 REN:串行口允许接收位。1时允许接收,0时禁止接收。 TI: 串行口发送中断标志位。在方式1中,于发送停止位之前,由硬件置位。因此TI=1,表示帧发送结束。 RI: 串行口接收中断标志位。在方式1中,当接收到停止位时,该位由硬件置位。RI=1,表示帧接收结束。(2) 串行数据缓冲器(SBUF)串行数据缓冲器SBUF的地址为99 H,用来存放需发送和接收的数据,它由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器,它们占用同一地址(99H)。当执行写SBUF指令时,数据写入到串行口发送缓冲器中,读SBUF就是读串行口接收缓冲器。(3) 电源控制寄存器(PCON)PCON的地址为87H,该寄存器的最高位(SMOD)是串行口波特率的倍增位,当SMOD=1时,串行口波特率加倍。系统复位时,SMOD=0。(4) 中断允许寄存器(IE)在IE中,ES位为串行中断允许控制位。ES=0时禁止串行中断,ES=1时允许串行中断。3 数据发送与接收(1) 数据发送在不发送数据时,TXD端保持高电平。当执行写SBUF的指令时,便启动一次发送过程;发送数据时,先发送一个起始位,该位通知接收端开始接收,也使发送和接收过程同步。接下来发送8位数据,先发送低位,最后发送的是高电平的停止位。(2) 数据接收 REN=1,CPU允许串行口接收数据,接收数据开始于检测到RXD(P3.0)端发生一个“1”到“0”的跳变。先接收起始位,然后依次将采样RXD端并将数据移入移位寄存器中。若满足条件RI=0且SM2=0或接收到停止位,则将前8位数据送入SBUF并置位RI;如果上述条件不满足,则数据丢失。(3) 波特率的设定串口方式1的波特率是可变的,由定时器T1的溢出率决定:(2.2) 其中,SMOD为PCON寄存器最高位的值。溢出率为溢出周期的倒数,假定计数初值为X,则计数溢出周期为(2.3) 其中,fosc为晶振频率。则波特率计算公式为:(2.4) 由波特率算出计数初值,以便进行定时器的初始化。初值X确定如下: (2.5) 2.3显示部分考虑到成本的节约和作品的体积,该部分由单片机最小系统上的测试小灯进行显示。第三章 软件设计无线数据传输主要由无线数据收发器NRF24L01、STC89C52RC单片机、显示器和按键组成,收发器与STC89C52RC间用串行口通信。整个系统的各个部分都是服务于无线数据传输这个目的。所以,在整个系统的软件设计中,无线数据的传输是最为重要的。这里使用C语言编写单片机控制程序。3.1 主程序流程图当单片机上电开始执行之后,对液晶和单片机寄存器进行初始化,同时设置串口控制字及波特率,接着进入键盘扫描程序和接收程序。若有某个按键按下,则执行相应的键盘子程序;若单片机判断接收到数据,则开始进行CRC校验,如果数据正确就通过液晶显示传送的信息。主程序流程图见图3-1。开始 初始化设置串口工作方式NYNN判断是否有按键按下执行相应的程序判断是否接收到数据CRC校验是否正确数据处理送入显示扫描键盘,同时判断是否有数据接收YY 图3-1 主程序流程图3.2 数据收发子程序流程图单片机STC89C52控制nRF2401的收发状态、完成编解码等工作。nRF2401芯片 “PWR-UP” 端接高电平,“FREQ” 端接低电平,分别表示系统在上电后始终处于 “正常工作模式”和“工作频道为通道1”。单片机STC89C52控制nRF2401,使其一直为接收状态。当按键4按下时,STC89C52接收到输入的低电平信号,从脚送出高电平至P1.0脚,使nRF24L01进入发射状态。数据收发子程序流程图见图3-2。入口置nRF24L01为接收状态判断按键4是否按下置Nrf24L01为发射状态数据发射YN键盘扫描图3-2 数据收发子程序流程图第四章 测试结果及分析4.1 硬件电路测试本设计中将控制模块和无线射频模式分开设计,控制模块通过一只单排7脚的接口控制射频模块,测试的步骤如下:(1) 将控制模块和无线射频模块焊好,检查确认无虚焊、粘焊;(2) 先对控制模块上电进行测试,主要是测试控制模块的串口能否收发数据,测试方法是将控制模块的串口与PC机的串口通过RS232标准相连接,并将串口的程序写到STC89C52上,然后用串口测试软件测试,如果串口能收发数据,便可开始对无线射频模块进行测试;(3) 将无线收发模块与控制模块连接起来,上电进行测试,按照程序,上电时处于接收状态,看是否与程序吻合;(4) 确认射频模块上电处于接收状态后,可测试nRF2401的第4管脚是否为1.1V左右,如果是,则说明VCO电感设计合理,否则要重新设计PCB板,此外,nRF401在没有数据接收时,仍会自动从DOUT发送随机数据,使用万用表进行测试时,该引脚电压应为2.5V左右。4.2 系统测试4.2.1 测试方法(1) 首先让电路正常工作,把接收器放在一定的位置,将发射器从远处逐渐靠近接收器,可测到传送的最远距离。(2) 在距离接收器一定的距离时,间隔一段时间就发送数据信息,可测出接收器的接收灵敏度。(3) 比较发射器和接收器的数据显示是否相同,以测试传输数据的正确性。4.2.2 功能测试及分析由于无线通信环境的不确定性,各种环境下的传输效果是不尽相同的,路径损耗、建筑物影响、人体影响、外界干扰、多径现象和周围环境的吸收等都会对传输的距离产生一定的影响,只能在一个给定的条件下进行测试和评估。因此,分别选择了不同的试验场地来进行实验。(1) 当建筑物很多的时候,数传模块两端均离地面1.5m(2.0m)高时,能够达到的最佳通信距离为510m;接收灵敏度为23秒;当发送端发送MESSAGE时,接收端能准确显示MESSAGE这段英文字符。(2) 在空旷场地,数传模块两端均离地面1.5m高时,最远的通信距离能够达到50m;接收灵敏度为35秒;当发送端发送字母A时,接收端能准确显示。通过对系统数据传输能力的测试,该系统发送和接收数据正确、可靠,各元件工作正常。在硬件连接正确的基础上,利用nRF2401进行串行数据接收及发送,收到了较好效果。结论此次设计将应用于无线通信领域,并且针对当前市场上无线产品的不足进行了改进。本文根据nRF2401的特点,提出了一种将其应用无线数据收发系统的实现方案。此方案采用了较完善的软硬件设计和抗干扰措施,保证了系统工作的安全性和可靠性,是一种较好的设计思路,具有通用性,便于投入实际应用。并且只要稍作改动就可以应用到小区传呼、工业数据采集、自动读表、警报和安全系统、无线键盘、无线操纵杆、家庭自动化、遥测和玩具等其他一些短距离无线通信领域,实现无线数据的双向传输,具有较好的市场应用价值。参考文献1 黄智伟.无线数字收发电路设计,第2版,电子工业出版社,2004年,253-269.2 童诗白等.模拟电子技术基础.高等教育出版社,20003 郭天祥,新概念51单片机 C语言教程4 康华光,邹寿彬.电子技术基础,第1版,高等教育出版社,2002年,191-197.5 黄智伟,王彦,陈文光等.全国大学生电子设计竞赛训练教程,第1版,电子工业出版社,2004年,73-80.附录1 无线发射系统电路图附录2 发送程序#include #include typedef unsigned char uchar;typedef unsigned char uint;/*NRF24L01端口定义*sbit MISO=P13;sbit MOSI=P14;sbitSCK =P12;sbitCE =P11;sbitCSN=P32;sbitIRQ=P33;/*按键*sbitKEY=P20;/*sbitled=P21;/*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 payloaduint const TX_ADDRESSTX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01;/本地地址uint const RX_ADDRESSRX_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接收数据地址#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 / 接收频道0接收数据长度#define RX_PW_P2 0x13 / 接收频道0接收数据长度#define RX_PW_P3 0x14 / 接收频道0接收数据长度#define RX_PW_P4 0x15 / 接收频道0接收数据长度#define RX_PW_P5 0x16 / 接收频道0接收数据长度#define FIFO_STATUS 0x17 / FIFO栈入栈出状态寄存器设置/*void Delay(unsigned int s);void inerDelay_us(unsigned char n);void init_NRF24L01(void);uint SPI_RW(uint uchar);uchar SPI_Read(uchar reg);void SetRX_Mode(void);uint SPI_RW_Reg(uchar reg, uchar value);uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);void nRF24L01_TxPacket(unsigned char * tx_buf);/*长延时*void Delay(unsigned int s)unsigned int i;for(i=0; is; i+);for(i=0; i0;n-)_nop_();/*/*NRF24L01初始化/*/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/*/*函数:uint SPI_RW(uint uchar)/*功能:NRF24L01的SPI写时序/*/uint SPI_RW(uint uchar)uint bit_ctr; for(bit_ctr=0;bit_ctr8;bit_ctr+) / output 8-bit MOSI = (uchar & 0x80); / output uchar, MSB to MOSIuchar = (uchar 1); / shift next bit into MSB.SCK = 1; / Set SCK high.uchar |= MISO; / capture current MISO bitSCK = 0; / .then set SCK low again return(uchar); / return read uchar/*/*函数:uchar SPI_Read(uchar reg)/*功能:NRF24L01的SPI时序/*/uchar SPI_Read(uchar reg)uchar re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论