NRF24L01多路通讯调试成功的关键--附程序_第1页
NRF24L01多路通讯调试成功的关键--附程序_第2页
NRF24L01多路通讯调试成功的关键--附程序_第3页
NRF24L01多路通讯调试成功的关键--附程序_第4页
NRF24L01多路通讯调试成功的关键--附程序_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

NRF24L01NRF24L01 多路通讯调试成功的关键多路通讯调试成功的关键 附基于串口助手的无线通讯工具源代码 附基于串口助手的无线通讯工具源代码 本文档部分内容摘自网络 由于按照网上教程调试总不成功 特此分享自 己的失败经验 红字加重 一 收发端共同的设置 1 设置信道工作频率 收发必须一致 如 SPI RW Reg WRITE REG RF CH 40 2 设置发射速率 2mbps 或 1mbps 和发射功率 收发必须一致 如 SPI RW Reg WRITE REG RF SETUP 0 x0f 发射速率为 2Mbps 发射功 率 最大为 0dB 二 接收端的设置 最关键 1 设置频道 0 5 自动 ACK 应答允许 如 SPI RW Reg WRITE REG EN AA 0 x3f 2 设置接收通道全部允许 如 SPI RW Reg WRITE REG EN RXADDR 0 x3f 3 向发送地址寄存器写入本地地址 5byte 4 向各个频道的接收地址寄存器写入接收地址 调试成不成功的关键 频道 0 5 个字节的地址 频道 1 5 个字节的地址 和频道 0 的地址必须不同 频道 2 1 个字节的地址 为该通道发射机地址的最后一个字节 有一个配置为发射模式的 24l01 要通过该通道与接收机通信 发射机的本地地 址为 0 x37 0 xa1 0 xb3 0 xc9 0 xda 则接收机频道 2 的地址为 0 x37 频道 3 1 个字节的地址 同上 频道 4 1 个字节的地址 同上 频道 5 1 个字节的地址 同上 5 向每个频道 用那个写那个 需要在上面配置允许通道接收和 ack 接收 数据长度寄存器写入接收数据宽度 最快均为 32 频道 n SPI RW Reg WRITE REG RX PW Pn RX PLOAD WIDTH 如 频道 5 SPI RW Reg WRITE REG RX PW P5 RX PLOAD WIDTH 6 配置为接收模式 如 SPI RW Reg WRITE REG CONFIG 0 x0f 下面附上我的程序 头文件 ifndef NRF24L01 H define NRF24L01 H sbit CE P1 2 sbit CSN P1 3 sbit IRQ P1 4 sbit MOSI P1 5 sbit MISO P1 6 sbit SCK P1 7 void NRF24L01 init 初始化模块 uchar TX packet uchar tx buf 返回值判断是否成功 uchar RX packet uchar rx buf 返回值判断是否成功 void TX MODE 发送模式 void RX MODE 接收模式 SPI nRF24L01 commands define READ REG 0 x00 Define read command to register define WRITE REG 0 x20 Define write command to register define RD RX PLOAD 0 x61 Define RX payload register address define WR TX PLOAD 0 xA0 Define TX payload register address define FLUSH TX 0 xE1 Define flush TX register command define FLUSH RX 0 xE2 Define flush RX register command define REUSE TX PL 0 xE3 Define reuse TX payload register command define NOP 0 xFF Define No Operation might be used to read status register SPI nRF24L01 registers addresses define CONFIG 0 x00 Config register address define EN AA 0 x01 Enable Auto Acknowledgment register address define EN RXADDR 0 x02 Enabled RX addresses register address define SETUP AW 0 x03 Setup address width register address define SETUP RETR 0 x04 Setup Auto Retrans register address define RF CH 0 x05 RF channel register address define RF SETUP 0 x06 RF setup register address define STATUS 0 x07 Status register address define OBSERVE TX 0 x08 Observe TX register address define CD 0 x09 Carrier Detect register address define RX ADDR P0 0 x0A RX address pipe0 register address define RX ADDR P1 0 x0B RX address pipe1 register address define RX ADDR P2 0 x0C RX address pipe2 register address define RX ADDR P3 0 x0D RX address pipe3 register address define RX ADDR P4 0 x0E RX address pipe4 register address define RX ADDR P5 0 x0F RX address pipe5 register address define TX ADDR 0 x10 TX address register address define RX PW P0 0 x11 RX payload width pipe0 register address define RX PW P1 0 x12 RX payload width pipe1 register address define RX PW P2 0 x13 RX payload width pipe2 register address define RX PW P3 0 x14 RX payload width pipe3 register address define RX PW P4 0 x15 RX payload width pipe4 register address define RX PW P5 0 x16 RX payload width pipe5 register address define FIFO STATUS 0 x17 FIFO Status Register register address endif 程序 include include define h include DELAY h include NRF24L01 h uchar code TX ADDRESS 5 0 1 1 1 1 uchar code RX ADDRESS P0 5 0 1 1 1 1 uchar code RX ADDRESS P1 5 1 1 1 1 1 uchar code RX ADDRESS P2 1 2 uchar code RX ADDRESS P3 1 3 uchar code RX ADDRESS P4 1 4 uchar code RX ADDRESS P5 1 5 uchar code Data width 1 uchar code Data rt 15 uchar SPI RW uchar dat SPI 读写指令 uchar i for i 0 i 8 i SCK 0 MOSI dat dat 1 SCK 1 dat MISO SCK 0 return dat uchar NRF24L01 read reg uchar reg 读某个寄存器的状态 uchar value CSN 0 拉低 CSN 允许操作 SPI RW reg 写寄存器指令 value SPI RW 0 读寄存器值 CSN 1 拉高 CSN 禁止操作 return value 返回寄存器状态 uchar NRF24L01 write reg uchar reg uchar value 写向某个寄存器写指令 并读 出状态 uchar status CSN 0 拉低 CSN 允许操作 status SPI RW reg 写寄存器指令 并读出寄存器状态 SPI RW value 写寄存器值 CSN 1 拉高 CSN 禁止操作 return status 返回寄存器之前的值 uchar NRF24L01 read buf uchar reg uchar pbuf uchar n uchar i status CSN 0 拉低 CSN 允许操作 status SPI RW reg 写寄存器指令 并读出寄存器状态 for i 0 i n i pbuf i SPI RW 0 从寄存器读出一字节数据 CSN 1 拉高 CSN 禁止操作 return status uchar NRF24L01 write buf uchar reg uchar pbuf uchar n uchar i status CSN 0 拉低 CSN 允许操作 status SPI RW reg 写寄存器指令 并读出寄存器状态 for i 0 i n i SPI RW pbuf i 写一字节数据到寄存器 CSN 1 拉高 CSN 禁止操作 return status void NRF24L01 init CE 0 射频电路工作使能 高电平工作 低电平停止 CSN 1 SPI 操作高电平允许 低电平禁止 SCK 0 时钟拉低 禁止读写寄存器 IRQ 1 中断复位 等待产生中断信号 NRF24L01 write reg WRITE REG EN AA 0 x3f 所有接受通道 允许自动应答 NRF24L01 write reg WRITE REG EN RXADDR 0 x3f 接收通道全部 打开 NRF24L01 write reg WRITE REG SETUP AW 0 x03 设置接收 发射 地址宽度为 5 字节 NRF24L01 write reg WRITE REG SETUP RETR Data rt 自动发送间隔 250 86us 次数 15 NRF24L01 write reg WRITE REG RF CH 0 x00 设置信道工作 为 2 4Ghz 收发必须一致 NRF24L01 write reg WRITE REG RX PW P0 Data width 设置通道 0 数 据字节数 NRF24L01 write reg WRITE REG RX PW P1 Data width 设置通道 1 数 据字节数 NRF24L01 write reg WRITE REG RX PW P2 Data width 设置通道 2 数 据字节数 NRF24L01 write reg WRITE REG RX PW P3 Data width 设置通道 3 数 据字节数 NRF24L01 write reg WRITE REG RX PW P4 Data width 设置通道 4 数 据字节数 NRF24L01 write reg WRITE REG RX PW P5 Data width 设置通道 5 数 据字节数 NRF24L01 write reg WRITE REG RF SETUP 0 x0f 发送速率为 1Mhz 发送功率最大值 0db NRF24L01 write buf WRITE REG TX ADDR TX ADDRESS 5 写本机地地址 NRF24L01 write buf WRITE REG RX ADDR P0 RX ADDRESS P0 5 写数据通道 0 接收机地址 NRF24L01 write buf WRITE REG RX ADDR P1 RX ADDRESS P1 5 写数据通道 1 接收机地址 NRF24L01 write buf WRITE REG RX ADDR P2 RX ADDRESS P2 1 写数据通道 2 接收机地址 NRF24L01 write buf WRITE REG RX ADDR P3 RX ADDRESS P3 1 写数据通道 3 接收机地址 NRF24L01 write buf WRITE REG RX ADDR P4 RX ADDRESS P4 1 写数据通道 4 接收机地址 NRF24L01 write buf WRITE REG RX ADDR P5 RX ADDRESS P5 1 写数据通道 5 接收机地址 void RX MODE NRF24L01 write reg WRITE REG CONFIG 0 x

温馨提示

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

评论

0/150

提交评论