当前位置: 首页 > article >正文

NRF24L01无线通信模块学习 来自正点原子标准库

SPI通信

自动ACK,发送完数据后可等对方回你

NRF24L01介绍

时序介绍,数据位多字节传输时,低字节在前,高字节在后

工作模式介绍,当处于发送模式的时候,CE脚电平为1,延时10ms,CE脚电平为0,进入待机模式I,CE在设置为,进入待机模式2

收发模式有两种

ENhanced shockBurstTm收发模式好处多,在发送模式下,置CE为1,至少10us,就使能了发送过程

发送方要求终端设备在收到数据后有应答信号,以便检测有无数据丢失,一旦丢失则重发数据

一个接收可以与6个发送匹配,它们都在同一频道,通道0是唯一可以配置为40位自身地址的数据通道,1~5数据通道都为8位自身地址和·32位公用地址(由通道1设置)

在发送端的通道0被用作接收应答信号,因此通道0的接收地址要与发送地址端地址相等,以确保接收到正确的应答信号,  下图中有6个发送端,一个接收端,因为接收模式下,可以接收6路不同数据,下面的数据通道1~5高32位为固定地址,后8位为自身地址

发送流程,配置CONFIG寄存器,使之进入发送模式,微控制器把CE拉高(至少10us),激活enhanced shockedburstTM发射

发送模式初始化流程,写Tx节点的地址TX_ADDR要和RX_ADDR_P0的地址相等

接收模式流程,这里的接收地址是针对一个Nrf在发送模式和接收模式的地址都是通道0的TX_ADDR

接收模式初始化

NRF24l01指令   0xAAAAA | 0x00, 0xAAAAA | 0x20,   payload有效负荷,在这里是有效数据,fLush是冲洗,这里是清除的意思

配置寄存器

自动应答使能寄存器,设置为1允许自动应答,设置为0禁止自动应答

自动重发,发送没有收到ACK后多少延时后重发,自动重发次数设置最大15次,就是在设置的自动重发次数完了还没收到ACK后就不发了,为0禁止自动重发

射频频率设置寄存器

RF_DR_HIGH和LOW配合10就可以把射频数据速率设置成2Mhz   RF_PWR默认设置为11发射功率最大

状态寄存器

通道0到5接收地址设置寄存器

发送地址设置寄存器,先写低字节,在enhanced模式下发送后会自动应答,所以P0的接收地址应该与Tx的地址相等

0x11有效数据宽度设置寄存器

探索者F4硬件部分,NRF24L01与norflash共用SPI1,注意分时复用

战舰版F1

miniF103硬件连接

源码位置

NRF24F0l驱动函数


http://www.kler.cn/news/343140.html

相关文章:

  • Unity3D 动画回调函数详解
  • Spring14——案例:利用AOP环绕通知计算业务层接口执行效率
  • API项目3:API签名认证
  • React高阶组件详解
  • 51c大模型~合集68
  • 如何设置 GitLab 密码长度?
  • lua多条件组合排序
  • Pygame开发贪吃蛇
  • QT学习笔记1.2(QT的应用)
  • 【数学分析笔记】第5章第1节 微分中值定理(1)
  • Unity 从零开始的框架搭建1-1 unity中对象调用的三种方式的优缺点分析【干货】
  • C++ | Leetcode C++题解之第461题汉明距离
  • 大数据毕业设计选题推荐-B站短视频数据分析系统-Python数据可视化-Hive-Hadoop-Spark
  • Word 插入表格的具体步骤图解
  • 服务器部署‌Traefik 实现子级域名路由服务(对外子域名80,路由对内大端口)
  • 【网络】详解TCP协议的“三次握手”/“四次挥手“
  • 自由学习记录(3)
  • DM原生JDBC,查询结果用Jackson序列化,字段为TEXT类型且存的json字符串时,报错“Infinite recursion“
  • 使用GPG学习非对称加密 信任公钥
  • nginx 资料整理(一)