




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
拓展模块11 无线模块 NRF24L01 NRF24L01是由NORDIC生产的工作在2 4GHz 2 5GHz的ISM频段的单片无线收发器芯片 输出功率频道选择和协议的设置可以通过SPI接口进行设置 几乎可以连接到各种单片机芯片 并完成无线数据传送工作 极低的电流消耗 当工作在发射模式下发射功率为0dBm时电流消耗为11 3mA 接收模式时为12 3mA 掉电模式和待机模式下电流消耗更低 NRF24L01简介 CSN 即为图中CS 芯片的片选线 CSN为低电平芯片工作 SCK 芯片控制的时钟线 SPI时钟 MISO 即为图中MIS SPI主机输出从机输出端 Masterinputslaveoutput MOSI 即为图中MOS SPI主机输出从机输入端 Masteroutputslaveinput IRQ 中断信号 引脚会在以下三种情况变低 1 TxFIFO发完并且收到ACK 使能ACK情况下 2 RxFIFO收到数据 3 达到最大重发次数 CE 即为图中RST 芯片的模式控制线 在CSN为低的情况下 CE协同NRF24L01的CONFIG寄存器共同决定NRF24L01的状态 模块外接引脚 右图为BST M51原理图 SPI SPI意思是串行外设接口 是一种高速的 全双工 同步的通信总线协议 SPI指令设置 CSN为低后SPI接口等待执行指令 每一条指令的执行都必须通过一次CSN由高到低的变化 关于这部分的几个函数 ucharSPI RW ucharbyte ucharSPI RW Reg ucharreg ucharvalue ucharSPI Read ucharreg ucharSPI Read Buf ucharreg uchar pBuf ucharbytes ucharSPI Write Buf ucharreg uchar pBuf ucharbytes 时序图 1 ucharSPI RW ucharbyte ucharSPI RW ucharbyte ucharbit ctr for bit ctr 0 bit ctr 8 bit ctr output8 bit MOSI byte returnreadbyte 最基本的函数 完成GPIO模拟SPI的功能 将输出字节 MOSI 从MSB循环输出 同时将输入字节 MISO 从LSB循环移入 上升沿读入 下降沿输出 从SCK被初始化为低电平可以判断出 2 ucharSPI RW Reg ucharreg ucharvalue ucharSPI RW Reg ucharreg ucharvalue ucharstatus CSN 0 CSNlow initSPItransactionstatus SPI RW reg selectregisterSPI RW value andwritevaluetoit CSN 1 CSNhighagainreturn status returnnRF24L01statusbyte 寄存器访问函数 用来设置24L01的寄存器的值 基本思路就是通过WRITE REG命令 也就是0 x20 寄存器地址 把要设定的值写到相应的寄存器地址里面去 并读取返回值 对于函数来说也就是把value值写到reg寄存器中 需要注意的是 访问NRF24L01之前首先要enable芯片 CSN 0 访问完了以后再disable芯片 CSN 1 3 ucharSPI Read ucharreg ucharSPI Read ucharreg ucharreg val CSN 0 CSNlow initializeSPIcommunication SPI RW reg Selectregistertoreadfrom reg val SPI RW 0 thenreadregistervalueCSN 1 CSNhigh terminateSPIcommunicationreturn reg val returnregistervalue 读取寄存器值的函数 基本思路就是通过READ REG命令 也就0 x00 寄存器地址 把寄存器中的值读出来 对于函数来说也就是把reg寄存器的值读到reg val中去 4 ucharSPI Read Buf ucharreg uchar pBuf ucharbytes ucharSPI Read Buf ucharreg uchar pBuf ucharbytes ucharstatus byte ctr CSN 0 SetCSNlow initSPItranactionstatus SPI RW reg Selectregistertowritetoandreadstatusbytefor byte ctr 0 byte ctr bytes byte ctr pBuf byte ctr SPI RW 0 PerformSPI RWtoreadbytefromnRF24L01CSN 1 SetCSNhighagainreturn status returnnRF24L01statusbyte 接收缓冲区访问函数 主要用来在接收时读取FIFO缓冲区中的值 基本思路是通过READ REG命令把数据从接收FIFO RD RX PLOAD 中读出并存到数组里面去 5 ucharSPI Write Buf ucharreg uchar pBuf ucharbytes ucharSPI Write Buf ucharreg uchar pBuf ucharbytes ucharstatus byte ctr CSN 0 SetCSNlow initSPItranactionstatus SPI RW reg SelectregistertowritetoandreadstatusbyteUart Delay 10 for byte ctr 0 byte ctr bytes byte ctr thenwriteallbyteinbuffer pBuf SPI RW pBuf CSN 1 SetCSNhighagainreturn status returnnRF24L01statusbyte 发射缓冲区访问函数 主要用来把数组里的数放到发射FIFO缓冲区中 基本思路就是通过WRITE REG命令把数据存到发射FIFO WR TX PLOAD 中去 工作模式 1 voidRX Mode void voidRX Mode void CE 0 SPI Write Buf WRITE REG RX ADDR P0 TX ADDRESS TX ADR WIDTH 写Rx节点的地址SPI RW Reg WRITE REG EN AA 0 x01 使能AUTOACKSPI RW Reg WRITE REG EN RXADDR 0 x01 使能PIPE0SPI RW Reg WRITE REG RF CH 40 选择通信频率SPI RW Reg WRITE REG RX PW P0 TX PLOAD WIDTH 选择通道0有效数据SPI RW Reg WRITE REG RF SETUP 0 x07 配置发射参数 低噪放大器增益 发射功率 无线速率 SPI RW Reg WRITE REG CONFIG 0 x0f 配置24L01的基本参数以及切换工作模式CE 1 SetCEpinhightoenableRXdevice 2 voidTX Mode void voidTX Mode void CE 0 SPI Write Buf WRITE REG TX ADDR TX ADDRESS TX ADR WIDTH 写Tx节点的地址SPI Write Buf WRITE REG RX ADDR P0 TX ADDRESS TX ADR WIDTH 写Rx节点的地址 主要是为了使能AutoAck SPI Write Buf WR TX PLOAD tx buf TX PLOAD WIDTH 选择通道0有效数据宽度SPI RW Reg WRITE REG EN AA 0 x01 使能AUTOACKSPI RW Reg WRITE REG EN RXADDR 0 x01 使能PIPE0SPI RW Reg WRITE REG SETUP RETR 0 x1a 配置自动重发次数SPI RW Reg WRITE REG RF CH 40 选择通信频率SPI RW Reg WRITE REG RF SETUP 0 x07 配置发射参数SPI RW Reg WRITE REG CONFIG 0 x0e 配置24L01的基
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年律师资格考试法律常识预测题及解析
- 2025年特岗教师招聘考试初中生物考试技巧与策略
- 2025年专业物资仓储与运输调度员招聘模拟题集及答案解析
- 2025年特岗教师招聘考试教材解读小学英语
- 2025年酒店管理专业人员初级培训考试题及答案解析
- 2025年燃气储运工初级模拟题及解析
- 2025年物业管理师考试指南及模拟题解析
- 2025年电子商务网站开发面试必-备知识点与预测题解析
- 2025年压力焊工艺原理及应用面试题
- 2025年物资储备管理专家竞聘面试指南及模拟题答案
- 核心素养背景下的小学音乐课“大单元教学设计”方法分析
- GB/T 2423.17-1993电工电子产品基本环境试验规程试验Ka:盐雾试验方法
- GB/T 10228-2015干式电力变压器技术参数和要求
- 染色打样的步骤
- FZ/T 07014-2021绿色设计产品评价技术规范聚酯涤纶
- 新型敷料的特性及选择
- 膝关节体格检查专家讲座
- 江苏城市规划收费标准
- 花生膜下滴灌技术
- 第4章 动车组车体检修动车组维护与检修
- 某某公司省长市长质量奖申报自述材料
评论
0/150
提交评论