前言: 

  nRF51可以支持基于2.4G的互相通信、与NRF24LE1的通信、与NRF24LU1的通信、与NRF24L01的通信。

一、nRF51822基于2.4G和nRF51822通信

  其中nRF51互相通信和之前用51操作nRF24L01很像,涉及到的只有几个核心的函数:

  • nrf_esb_init---初始化ESB
  • nrf_esb_enable---使能ESB
  • nrf_esb_add_packet_to_tx_fifo---将数据送入发送队列

  如果想知道发送是否成功等状态可以用:

  • void nrf_esb_tx_success(uint32_t tx_pipe, int32_t rssi)// If an ACK was received, we send another packet.
  • void nrf_esb_tx_failed(uint32_t tx_pipe)
  • void nrf_esb_rx_data_ready(uint32_t rx_pipe, int32_t rssi)
  • void nrf_esb_disabled(void)

  整个架构比较简单:

二、NRF51822和NRF24LE1/NRF24LU1/NRF24L01通信

  其中nrf51和其他三种类型的2.4G模块通信类似,比其自身通信稍微复杂,其配置流程如下:

  • bool nrf_esb_set_enabled_prx_pipes(uint32_t pipes)

用于使能接收通道,第0位对应通道1,依次类推,可同时使能多个通道

  • bool nrf_esb_set_crc_length (nrf_esb_crc_length_t length)

设置CRC校验,务必使发送方和接收方一致

  • bool nrf_esb_set_output_power(nrf_esb_output_power_t power)

设置发送功率,可选功率从4~-20,4为步数

  • bool nrf_esb_set_channel (uint32_t channel )

设置无线通讯频率。无线频率=(2400 + channel) MHz,0 <= channel <= 125。

  • bool nrf_esb_set_datarate(nrf_esb_datarate_t datarate)

设置通信速率:可选250Kbps,1M,2M

  • NRF51822 2.4G 通讯比较麻烦的就是地址设置,和NRF24LXX 系列的无线芯片的地址有所不同,NRF51822 2.4G 通讯地址是由两部分组成,配置地址时需要设置BASEn 和PREFIXn 寄存器,同时要指定BASEn 中地址长度。另外,NRF51822 的地址每个字节内的位必须首位对调才能和NRF24LXX 系列的一致。

NRF24LE1 端地址设置:

uint8_t TX_ADDRESS[5] = {0xE5,0xE4,0xE3,0xE2,0xE1}; //地址定义

hal_nrf_set_address(HAL_NRF_TX,TX_ADDRESS); //设置NRF24LE1 发射地址

NRF51822 端地址设置:

(void)nrf_esb_set_address_prefix_byte(0,0xE5);

(void)nrf_esb_set_base_address_0(0xE1E2E3E4);

(void)nrf_esb_set_base_address_length(NRF_ESB_BASE_ADDRESS_LENGTH_4B);

  • void nrf_esb_enable_dyn_ack (void )

使能动态数据长度


ESBEnhanced ShockBurst,增强型突发模式。

Enhanced ShockBurstTM 模式比ShockBurst 模式多了一个确认数据传输的信号,保证数据传输的可靠性。EnhancedShockBurst 收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器送入,但高速(1Mbps)发射,这样可以尽量节能与射频协议相关的所有高速信号处理都在片内进行,这种做法有三大好处:

  • 尽量节能。
  • 低的系统费用(低速微处理器也能进行高速射频发射)。
  • 数据在空中停留时间短,降低了碰撞几率,提供了抗干扰性能。

后记:nRF51822运行在传统2.4G模式下可以和之前的一些2.4G模块兼容,从而做出更个性化的通信网络。但更多的时候nRF51822用在BLE领域,比如bong手环、百度手环等一些设备上。但是其运行在BLE模式下需要搭载BLE协议栈,其复杂程度要比跑在经典2.4G模式下发杂得多。

@nRF51822基础实验系列:


[nRF51822] 7、基础实验代码解析大全(前十)

[nRF51822] 8、基础实验代码解析大全 · 实验11 - PPI

[nRF51822] 9、基础实验代码解析大全 · 实验12 - ADC

[nRF51822] 10、基础实验代码解析大全 · 实验15 - RTC

[nRF51822] 11、基础实验代码解析大全 · 实验16 - 内部FLASH读写

[nRF51822] 12、基础实验代码解析大全 · 实验19 - PWM


@beautifulzzzz - 物联网&普适计算实践者
e-mail:beautifulzzzz@qq.com 
i-blog:blog.beautifulzzzz.com

转载于:https://www.cnblogs.com/zjutlitao/p/5760295.html

[nRF51822] 13、浅谈nRF51822和NRF24LE1/NRF24LU1/NRF24L01经典2.4G模块无线通信配置与流程...相关推荐

  1. 浅谈nRF51822和NRF24LE1/NRF24LU1/NRF24L01经典2.4G模块无线通信配置与流程

    转载:https://www.cnblogs.com/zjutlitao/p/5760295.html 前言:  nRF51可以支持基于2.4G的互相通信.与NRF24LE1的通信.与NRF24LU1 ...

  2. 浅谈4.X内核和5.X内核LSM模块初始化差异

    最近在帮同事解一个LSM子模块的问题的时候,发现4.X内核和5.X内核的初始化流程存在较大的差异.借此问题,我也研究了一下两个大版本内核的LSM模块,最终有所获.先是在网上查找资料,然而目前网上很少有 ...

  3. JDK与JRE的关系和path的作用浅谈

    JDK与JRE的关系和path的作用浅谈 摘要:JDK与JRE的关系以及path的配置对于初学者是要明白的问题,那么具体的JDK与JRE的关系是什么呢?那么本文讲给你简单介绍. 标签:JDK与JRE关 ...

  4. 浅谈Spring定时任务

    浅谈Spring定时任务 三种定时任务基于原理 多定时任务并发配置 动态定时任务 定时任务Demo 三种定时任务基于原理 SpringBoot配置定时任务主要有Spring Schedule.JDK自 ...

  5. 【瑞数5】浅谈某普期刊JS逆向的环境检测点

    [瑞数5]浅谈某普期刊JS逆向的环境检测点 前言 JS加载流程 第一个JS 第二个JS 第三个JS AST简单解混淆 环境检测 前奏 异步执行JS流程 高潮 运行结果 总结 鸣谢 前言 这几天把某期刊 ...

  6. Exchange server 2010系列教程之五 浅谈Outlook 2010新功能

    Exchange server 2010系列教程之五  浅谈Outlook 2010新功能 前面我们讲了outlook的配置事项,也说了exchange server 2010的正确卸载方法.下面简要 ...

  7. 『软件工程13』浅谈面向对象方法,统一建模语言UML

    浅谈面向对象方法UML 一.UML的含义 二.UML的主要内容 1.UML的概念模型 2.UML概念模型图例 三.UML的基本构造块 1.UML中的事物 (1)UML中的四种事物 (2)UML中各种事 ...

  8. ant man 什么意思_浅谈为什么很多蓝牙模块厂家选择nRF52832?

    浅谈为什么很多蓝牙模块厂家选择nRF52832? 现在蓝牙低功耗(BLE)SOC作为新一代蓝牙,以其低功耗的优势,正凸显出强大的市场竞争力,而其中Nordic公司的nRF52832这一款低功耗蓝牙芯片 ...

  9. 浅谈几种区块链网络攻击以及防御方案之女巫攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/13/network_attack_of_blockchain_sybil_attack/ 写在前面的话 自比特 ...

最新文章

  1. 宜人贷,指旺理财,投米网有什么不一样?
  2. 字符串之数组中两个字符串的最小距离
  3. [html] 怎样在页面上实现一个圆形的可点击区域?
  4. python图形化编程工具哪个好_mPython(图形化编程软件) V0.5.0 官方版
  5. 百度下mysql卸载_如何把Mysql卸载干净(亲测有效)
  6. Hadoop相关问题解决
  7. vs2008中使用gdi+的设置
  8. linux下磁盘分区方法详解
  9. 【生信进阶练习1000days】day1-Bioconductor的一些补充小用法与Working with Genomic Ranges
  10. oracle jde开发,第一个JDE报表开发
  11. 小米上的lineageos
  12. 内网远程协助工具_分享几个常用的免费远程软件
  13. 证明一维热传导方程为抛物型方程
  14. 这种技术能够替代 Android 原生开发?
  15. 华为鸿蒙电视保修终身,华为全新鸿蒙OS新品来了!刷新电视“N年不变”固有认知...
  16. docker 小结
  17. 2018年北京AQI全年走势图
  18. 谷歌发现育碧uPlay安全漏洞
  19. 用c语言怎么打e的x次方
  20. 回顾2022年计算机视觉领域最激动人心的进展

热门文章

  1. 4比较三个数的大小输出最大的值并从小到大排序输出
  2. Android开发笔记(四十七)Runnable接口实现多线程
  3. sublime php错误提示,sublime中检查php语法错误
  4. 你真的了解JS数组的那些方法吗?
  5. 关于Java浮点数运算精度丢失问题
  6. php集成环境、基础标记符
  7. proxychains 一个好用的终端用代理拦截器
  8. NetBeans 时事通讯(刊号 # 67 - Aug 04, 2009)
  9. 网络性能测试之pathrate的安装使用
  10. 教程和攻略之悪戯極~いたずらリアル~(3D电车监禁)+初回特典