NRF51822
luck_horse
这个作者很懒,什么都没留下…
展开
-
基于FTP的Nordic nRF51822 OTA 教程一之修改boot区大小
本文主要对nRF51822的OTA过程进行详细说明,主要通过改写nRF51822_sdk11中的bootloader,实现空中升级的功能。OTA流程:Fireware由app区中的ftp协议下载存于外部flash,然后由bootloader区将Fireware从外部flash导入nRF51822,实现升级的功能。1、NORDIC 51 OTA简介 对于nRF51822来说,升级过程有点特...转载 2019-03-19 16:08:21 · 376 阅读 · 0 评论 -
BLE程序框架探索
在这篇文章里我主要探究SoftDevice程序是怎么嵌入到BLE程序中的,研究一下BLE程序框架:在函数softdevice_handler_init中有这样的一句调用语句: err_code = sd_softdevice_enable(clock_source, softdevice_assertion_handler);我们就从这句话入手: 全局搜索sd_...转载 2019-03-25 10:32:21 · 427 阅读 · 0 评论 -
SVC和PendSV
1.SVCSVC(Supervisor Call)指令用于产生一个SVC异常。它是用户模式代码中的主进程,用于创造对特权操作系统代码的调用。SVC是用于呼叫操作系统所提供API的正道。用户程序只需知道传递给操作系统的参数,而不必知道各API函数的地址。SVC指令带一个8位的立即数,可以视为是它的参数,被封装在指令自身,如:SVC 3:呼叫3号系统服务则3被封装在这个SVC...转载 2019-03-25 10:52:19 · 1760 阅读 · 0 评论 -
BLE-NRF51822教程2-工程初始化流程
代码讲解基于资料包里配套的 sdk5.1版本中的串口demo。高版本的sdk基本都是差不多的。代码在路径xxxxx\keil\ARM\Device\Nordic\nrf51822\Board\pca10001\s110\experimental中一:main函数整体注释:int main(void){//初始化LED指示灯,用来指示广播和连接状态leds_init();...转载 2019-03-25 10:55:53 · 315 阅读 · 0 评论 -
BLE-NRF51822教程8-动态广播
本讲接收如何实现动态广播。教程基于9.0 sdk中的Uart例子。实现动态广播的方法是广播->停止广播->修改参数->重启广播所以我们通过一个定时器来周期性的关闭广播然后再修改广播数据之后再开启广播。Sdk 9.0中的广播搞了好几个模式,做的有点麻烦,所以我对他做了比较大的改动。首先 在main.c中 中的advertising_...转载 2019-03-27 16:23:01 · 324 阅读 · 0 评论 -
nrf51822蓝牙学习笔记之实例分析PPI和SHORT
转载 2019-04-02 16:22:14 · 266 阅读 · 0 评论 -
NRF51 BOOTLOADER 编译注意事项
需将 OPTION- C/C++ -----> ENUM ALWAY AS INT勾上, 要不会导致 STORAGE 检查4BYTE 对齐时ERR 而重启。当时被坑查了半天,最后加LOG发现转载 2019-04-02 16:30:03 · 362 阅读 · 0 评论 -
nordic 协议栈区别
S110 指的是从设备的协议栈S120 指的是主设备的协议栈S130 SoftDevice是符合蓝牙4.1规范的协议堆栈,包含了所有蓝牙智能协议层直至包含GATT/GAP。它支持多链路中心、周边、观察器和播送器任务、GATT服务器和客户机,以及由事件驱动、异步和线程安全的GATT/GAP和L2CAP API。S130能够支持并行多链路中心和周边任务,使之成为非智能手机或平板电脑的蓝牙智能中...转载 2019-04-02 16:53:44 · 767 阅读 · 0 评论 -
nRF5_SDK_12.3.0 编译micro-ecc摘要
参考官方文档:安装编译器:安装GNU MAKE:配置好编译器路径:下载好micro-ecc源码后开始编译:编译结果:...原创 2019-09-18 17:55:22 · 674 阅读 · 0 评论 -
HEX文件格式详解
如图,其中第一行020000040002f8中,可以看做是0x02 0x00 0x00 0x04 0x02 0x02 0xf8,其前四个字节和最后一个字节有特殊含义。中间为数据第一个0×...转载 2019-03-25 10:12:45 · 588 阅读 · 1 评论 -
nRF51822之BootLoader
一)nRF51822程序加载顺序1)SoftDevice加载;2)SoftDevice初始化蓝牙协议栈;3)SoftDevice检查0x10001014处是否保存有有效的BootLoader地址,如果不是跳转到0x14000处的APP执行,流程结束.4)SoftDevice跳转到BootLoader5)BootLoader进行他的业务处理工作;6)BootLoader跳转到0x14...转载 2019-03-25 09:52:42 · 3582 阅读 · 0 评论 -
服务发现过程分析
本讲主要针对 主从连接后主机如何在从机上找到自己需要的服务的过程。需要和 主从通信过程分析教程一起看。服务查找过程就是主从连接后,主机需要在从机上查找所有的服务以及服务下面的特征值和描述符等信息。 不过Sdk中的主从通信例子因为是个 简单的主从点灯demo,所以服务查找过程中并不是搜寻从机上的所有服务,而是根据初始化时注册的要查找的服务来定向搜寻从机上的服务,已经其下面的特征值和描述符信...转载 2019-03-16 16:44:14 · 886 阅读 · 0 评论 -
NRF51822之发射功率
设置蓝牙的TX Power使用的函数sd_ble_gap_tx_power_set(int8_t tx_power);参看例子为 S110/ble_app_proximity#define TX_POWER_LEVEL (4) /**<...转载 2019-03-15 20:17:02 · 317 阅读 · 0 评论 -
NRF51822之动态广播使用
本教程基于nRF51_SDK_10.0.0_dc26b5e\examples\ble_peripheral\ble_app_uart工程本教程主要是演示现在演示通过nus来修改ADV中maufacturer data,在disconnect后我们可以看到广播中maufacturer data更新为我们在nus中配置的在工程增加新代码#define APP_COMPA...转载 2019-03-15 20:15:52 · 1312 阅读 · 0 评论 -
BLE蓝牙核心数据库结构解析
每个0x2800的地盘就是下一个0x2800出现之前的那一部分。每个0x2803的地盘就是下一个0x2803出现之前的那一部分。0x29xx属于0x2803的地盘范围。原创 2019-03-15 20:26:11 · 587 阅读 · 0 评论 -
BLE-NRF51822教程15-BLE地址
51822的 BLE的设备地址 可以通过如下函数函数来获得地址的设置可以调用如下函数设置。官方的demo工程中,都是没有主动调用过 sd_ble_gap_address_set函数来设置设备地址的。所以 demo工程中使用的都是默认地址。这个默认地址就是 芯片出厂是设置的,出厂时烧写在FICR寄存器中的。所以蓝牙芯片启动后,如果你没有主动调用 sd_ble_gap_ad...转载 2019-03-16 16:00:21 · 243 阅读 · 0 评论 -
BLE-NRF51822教程-RSSI获取
当手机和设备连接上后,设备端可以通过获取RSSI来 在一定程度上判断手机离设备的相对距离的远近。获取函数很简单直接调用sd_ble_gap_rssi_get 接口函数就行了,传入连接句柄和buff就能获取到 最近一次连接事件中的 接收信号强度。调用该函数之前需要先调用sd_ble_gap_rssi_start 函数,该函数有三个参数,第一个为连接句柄,第二个为 改变阈值, 第...转载 2019-03-16 16:40:23 · 1460 阅读 · 0 评论 -
BLE-NRF51822-实现简单扫描器
在sdk目录XXX:\Keil_v5\ARM\Pack\NordicSemiconductor\nRF_Examples\9.0.0\ble_central 下有官方提供的主从连接的demo.官方的demo中实现的是主机通过名字来判断 周围的设备是否是自己要寻找的设备,如果是就发起来接。 并且连接建立后可以继续保持侦听,一共可以连接8个设备。 连接上后,从机可以通过按键button1 来...转载 2019-03-16 16:41:26 · 528 阅读 · 0 评论 -
nrf51822-主从通信分析1
建议看该教程前,先看一下 简单扫描器实现 教程讲解基于sdk目录下central中的两个例子。关于主机的程序框架其实和从机都是一样的,都是基于事件驱动的框架。 Main函数中完成初始化, 从机的话就启动广播,主机就启动扫描。 之后都是基于事件驱动的方式将ble相关事件返回给上层app,并且再通过ble_evt_dispatch函数将事件分发给各个处理函数。如下图所示:蓝牙的...转载 2019-03-16 16:42:12 · 729 阅读 · 0 评论 -
nrf51822-主从通信分析2
解决第三个问题:如何使能从机上的特征值的 notify功能,使其能通过notify方式发送数据使能从机的notify功能是通过写0x0001到从机的那个具有notify功能的特征值的CCCD描述符中来实现的。 既然要写那就需要先有服务发现过程,服务发现就是找到从机里我们需要的服务以及服务下面的 特征值,描述符等。 关于服务发现过程的具体讲解 参见 服务发现过程解析 教程。因为...转载 2019-03-16 16:43:14 · 470 阅读 · 1 评论 -
低功耗蓝牙之MIC理解
原创 2019-09-23 19:45:13 · 2172 阅读 · 0 评论