欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > PDF文档下载
    分享到微信 分享到微博 分享到QQ空间

    NRFL使用方法.pdf

    • 资源ID:3437796       资源大小:359.29KB        全文页数:8页
    • 资源格式: PDF        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    NRFL使用方法.pdf

    1、广东顺德春暖花开自动化开发设计工作室 伍耀斌 NRF24L01 使用方法 一、模块引脚 二、电路原理图 广东顺德春暖花开自动化开发设计工作室 伍耀斌 三、操作流程 单片机需预留 5 个或 6 个端口给模块使用。分别为 CE、CSN、SCK、MOSI、MISO、IRQ。CE:芯片的模式控制线。在 CSN 为低的情况下,CE 协同 NRF24L01 的 CONFIG 寄存器共同决定 NRF24L01 的状态 CSN:芯片的片选线,CSN 为低电平芯片工作。SCK:芯片控制的时钟线(SPI 时钟)MOSI:芯片控制数据线(Master output slave input 主机出从机入)MISO:芯

    2、片控制数据线(Master input slave output 主机入从机出)IRQ:中断信号。无线通信过程中MCU 主要是通过IRQ 与NRF24L01 进行通信。(可省略)3.1 发射:1)写Tx 节点的地址 TX_ADDR 2)写Rx 节点的地址(主要是为了使能Auto Ack)RX_ADDR_P0 3)写入需发送的数据 TxDate 4)使能AUTO ACK EN_AA 5)使能PIPE 0 EN_RXADDR 6)配置自动重发次数 SETUP_RETR 7)选择通信频率 RF_CH 8)配置发射参数(低噪放大器增益、发射功率、无线速率)RF_SETUP 9)选择通道0 有效数据宽度

    3、 Rx_Pw_P0 10)配置24L01 的基本参数以及切换工作模式 CONFIG。void NRFSetTxMode(uchar*TxDate)/发送模式 CE=0;NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);/写寄存器指令+P0 地址使能指令+发送地址+地址宽度 NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);/为了应答接收设备,接收通道 0地址和发送地址相同 NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITD

    4、H);/写入数据 TX_DATA_WITDH为数据长度 /*下面有关寄存器配置*/NRFWriteReg(W_REGISTER+EN_AA,0 x01);/使能接收通道 0 自动应答 NRFWriteReg(W_REGISTER+EN_RXADDR,0 x01);/使能接收通道 0 NRFWriteReg(W_REGISTER+SETUP_RETR,0 x0a);/自动重发延时等待 250us+86us,自动重发 10 次 NRFWriteReg(W_REGISTER+RF_CH,0 x40);/选择射频通道 0 x40 NRFWriteReg(W_REGISTER+RF_SETUP,0 x0

    5、7);/数据传输率 1Mbps,发射功率 0dBm,低噪声放大器增益 NRFWriteReg(W_REGISTER+CONFIG,0 x0e);/CRC 使能,16 位 CRC 校验,上电 CE=1;delayms(5);/NRFDelay(5);/保持 10us 秒以上 广东顺德春暖花开自动化开发设计工作室 伍耀斌 3.2 接收:初始化步骤 24L01 相关寄存器 1)写Rx 节点的地址 RX_ADDR_P0 2)使能AUTO ACK EN_AA 3)使能PIPE 0 EN_RXADDR 4)选择通信频率 RF_CH 5)选择通道0 有效数据宽度 Rx_Pw_P0 6)配置发射参数(低噪放大

    6、器增益、发射功率、无线速率)RF_SETUP 7)配置24L01 的基本参数以及切换工作模式 CONFIG。void NRFSetRXMode()CE=0;NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);/接收设备接收通道 0 使用和发送设备相同的发送地址 NRFWriteReg(W_REGISTER+EN_AA,0 x01);/使能接收通道 0 自动应答 NRFWriteReg(W_REGISTER+EN_RXADDR,0 x01);/使能接收通道 0 NRFWriteReg(W_REGISTER+RF_CH,0 x40)

    7、;/选择射频通道 0 x40 NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_WITDH);/接收通道 0 选择和发送通道相同有效数据宽度 NRFWriteReg(W_REGISTER+RF_SETUP,0 x07);/数据传输率 1Mbps,发射功率 0dBm,低噪声放大器增益 NRFWriteReg(W_REGISTER+CONFIG,0 x0f);/CRC 使能,16 位 CRC 校验,上电,接收模式 CE=1;delayms(1);/NRFDelay(5);四、程序说明 4.1 发射:/*PD3-20 脚-CE-模块芯片开启信号 激活 RX 或 TX 单

    8、片机输出 PD2-19 脚-CSN-模块 SPI 片选信号 单片机输出 PC7-17 脚-SCK-模块 SPI 时钟信号 单片机输出 PC6-16 脚-MOSI-模块 SPI 输入信号 单片机输出 PC5-15 脚-MISO-模块 SPI 输出信号 单片机输入 PC4-14 脚-IRQ-模块可屏蔽中断信号 低电平有效 单片机输入*/#include#include uchar RevTempDate5;/最后一位用来存放结束标志 uchar TxAddr=0 x34,0 x43,0 x10,0 x10,0 x02;/发送地址/*状态标志*/uchar sta;/状态标志 广东顺德春暖花开自动化

    9、开发设计工作室 伍耀斌/RX_DR=sta6;/TX_DS=sta5;PLC_BitState.BitState0.Bit.M4=1;/MAX_RT=sta4;struct PLC_BITSTATE /-union BITSTATE0 char all;struct BIT00 uchar M0:1;/uchar M1:1;/uchar M2:1;/uchar M3:1;/uchar MAX_RT:1;/不成功返回 ACK 信号,此为 1.不成功为 0 uchar TX_DS:1;/成功返回 ACK 信号,此为 1.不成功为 0 uchar RX_DR:1;/uchar M7:1;/Bit;B

    10、itState0;PLC_BitState;/*SPI 时序函数*/uchar NRFSPI(uchar date)/*NRF24L01 初始化函数*/void NRF24L01Int()/*SPI 读寄存器一字节函数*/uchar NRFReadReg(uchar RegAddr)/*SPI 写寄存器一字节函数*/uchar NRFWriteReg(uchar RegAddr,uchar date)/*SPI 读取 RXFIFO 寄存器的值*/uchar NRFReadRxDate(uchar RegAddr,uchar*RxDate,uchar DateLen)/*SPI 写入 TXFIF

    11、O 寄存器的值*/uchar NRFWriteTxDate(uchar RegAddr,uchar*TxDate,uchar DateLen)/*NRF 设置为发送模式并发送数据*/void NRFSetTxMode(uchar*TxDate)广东顺德春暖花开自动化开发设计工作室 伍耀斌 /*NRF 设置为接收模式并接收数据*/接收模式 void NRFSetRXMode()/*检测是否有接收到数据*/uchar CheckACK()/*判断是否接收收到数据,接到就从 RX 取出*/用于接收模式 uchar NRFRevDate(uchar*RevDate)/*端口配置*/void IO_co

    12、nfig(void)原理:1、需要发射调用:NRFSetTxMode(TxDate1);/发送数组 1 (其中 TxDate1 为存放所发的数据)while(CheckACK();/检测是否发送完毕 2、void NRFSetTxMode(uchar*TxDate)调用到:uchar NRFWriteTxDate(uchar RegAddr,uchar*TxDate,uchar DateLen)写寄存器 TXFIFO uchar NRFWriteReg(uchar RegAddr,uchar date)写寄存器配置 广东顺德春暖花开自动化开发设计工作室 伍耀斌 4.2 接收:/*PD3-20

    13、脚-CE-模块芯片开启信号 激活 RX 或 TX 单片机输出 PD2-19 脚-CSN-模块 SPI 片选信号 单片机输出 PC7-17 脚-SCK-模块 SPI 时钟信号 单片机输出 PC6-16 脚-MOSI-模块 SPI 输入信号 单片机输出 PC5-15 脚-MISO-模块 SPI 输出信号 单片机输入 PC4-14 脚-IRQ-模块可屏蔽中断信号 低电平有效 单片机输入*/#include#include uchar RevTempDate5;/最后一位用来存放结束标志 uchar TxAddr=0 x34,0 x43,0 x10,0 x10,0 x02;/发送地址/*状态标志*/u

    14、char sta;/状态标志/RX_DR=sta6;/TX_DS=sta5;PLC_BitState.BitState0.Bit.M4=1;/MAX_RT=sta4;struct PLC_BITSTATE /-union BITSTATE0 char all;struct BIT00 uchar M0:1;/uchar M1:1;/uchar M2:1;/uchar M3:1;/uchar MAX_RT:1;/uchar TX_DS:1;/uchar RX_DR:1;/uchar M7:1;/Bit;BitState0;PLC_BitState;/*SPI 时序函数*/uchar NRFSPI

    15、(uchar date)/*NRF24L01 初始化函数*/void NRF24L01Int()/*SPI 读寄存器一字节函数*/广东顺德春暖花开自动化开发设计工作室 伍耀斌 uchar NRFReadReg(uchar RegAddr)/*SPI 写寄存器一字节函数*/uchar NRFWriteReg(uchar RegAddr,uchar date)/*SPI 读取 RXFIFO 寄存器的值*/uchar NRFReadRxDate(uchar RegAddr,uchar*RxDate,uchar DateLen)/*SPI 写入 TXFIFO 寄存器的值*/uchar NRFWrite

    16、TxDate(uchar RegAddr,uchar*TxDate,uchar DateLen)/寄存器地址/写入数据存放变量/读取数据长度/用于发送 /*NRF 设置为发送模式并发送数据*/void NRFSetTxMode(uchar*TxDate)/*NRF 设置为接收模式并接收数据*/接收模式 void NRFSetRXMode()/*检测是否有接收到数据*/void CheckACK()/用于发射模式接收应答信号 /*判断是否接收收到数据,接到就从 RX 取出*/用于接收模式 uchar NRFRevDate(uchar*RevDate)/*端口配置*/void IO_config(

    17、void)GPIO_Init(GPIOD,GPIO_PIN_3,GPIO_MODE_OUT_PP_HIGH_FAST);/PB7 高速推挽输出高电平-CE HIGH GPIO_Init(GPIOD,GPIO_PIN_2,GPIO_MODE_OUT_PP_HIGH_FAST);/PB6 高速推挽输出高电平-CSN(片选)GPIO_Init(GPIOC,GPIO_PIN_7,GPIO_MODE_OUT_PP_HIGH_FAST);/PB5 高速推挽输出高电平-SCK(时钟)GPIO_Init(GPIOC,GPIO_PIN_6,GPIO_MODE_OUT_PP_HIGH_FAST);/PB4 高速推

    18、挽输出低电平-MOSI(数据输出)GPIO_Init(GPIOC,GPIO_PIN_5,GPIO_MODE_IN_PU_NO_IT);/PB3 上拉输入无中断-MISO(数据输入)GPIO_Init(GPIOC,GPIO_PIN_4,GPIO_MODE_IN_PU_NO_IT);/PB2 上拉输入无中断-IRQ /=/*接收数据*/void GetDate()广东顺德春暖花开自动化开发设计工作室 伍耀斌 /接收到的数据放在:RevTempDate0,RevTempDate1,RevTempDate2,RevTempDate3中.原理:1、主程序循环一直调用:NRFSetRXMode();/设置为接收模式 GetDate();/开始接受数 if(RevTempDate0=9)LED2=0;/RevTempDate0为所收到的数据 2、void NRFSetRXMode()里面调用到:uchar NRFWriteTxDate(uchar RegAddr,uchar*TxDate,uchar DateLen)写寄存器 TXFIFO uchar NRFWriteReg(uchar RegAddr,uchar date)写寄存器配置 GetDate();里面调用到:五、


    注意事项

    本文(NRFL使用方法.pdf)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开