logo资料库

青风带你学蓝牙5.0(初稿).pdf

第1页 / 共600页
第2页 / 共600页
第3页 / 共600页
第4页 / 共600页
第5页 / 共600页
第6页 / 共600页
第7页 / 共600页
第8页 / 共600页
资料共600页,剩余部分请下载后查看
-------------作者:青风
作者: 青风
出品论坛: www.qfv8.com
淘宝店:http://qfv5.taobao.com
QQ技术群:346518370
硬件平台:青云QY-nRF52832开发板
第一篇:蓝牙初步篇
第一章:蓝牙5.0 芯片nrf52832开发绪论
1 :芯片勘定选型:
2:开发工具的购买与选取:
2.1开发板的选取:
2.2抓包器:
2.3 OLED显示器:
2.4 仿真器:
3: 软件与功能开发:
3.1资料搜集学习:
3.2勘误表自查:
3.3 实例开发:
4:产品电路设计:
4.1 电路图设计和PCB绘制
4.2 蓝牙射频性能调试
4.3 打板与焊接
5:性能测试:
5.1 RF测试:
5.2功耗测试:
5.3认证(可选):
第二章:蓝牙工程包SDK详解
1:SDK15 开发包的基本结构
1.1 components文件包
1.2 config文件包
1.3 documentaion文件包
1.4 example文件包
1.5 external文件包和external_tool包
1.6 integration文件包和modules文件包
2:开发包外设例子和蓝牙历程说明
2.1 外设硬件例子
2.2 蓝牙例子说明
第三章:开发环境keil的使用及工程建立
1 开发环境KEIL5 简介
2 工程项目的建立
3工程项目的仿真与调试
3.1 仿真工具的选择与设置:
3.2 项目仿真错误定位
第四章:蓝牙5.0基础概念以及学习规划
1 蓝牙5.0基础概念普及
1.1蓝牙5.0的简介:
1.2蓝牙协议栈结构:
1.3蓝牙如何实现连接与通信:
1.3.1从机广播
1.3.2主机扫描
1.3.3 建立连接
1.3.4 发送与接收数据
2 蓝牙学习规划
2.1 蓝牙外设程序学习:
2.2 蓝牙BLE程序学习:
2.2.1第一步:蓝牙BLE基础工程搭建
2.2.2第二步:蓝牙任务的建立
2.2.3 第三步:蓝牙数据传输
2.2.4 第四步:蓝牙参数及安全设置
2.2.5 第五步:蓝牙综合应用。
第二篇:蓝牙硬件篇:
第五章:nRF52832开发部硬件介绍:
1. nRF52832DK主板介绍:
1.1 青云 nRF52832DK主板介绍:
1.2 青云 nRF52832DK电路详解:
2 nRF52832_EK主板介绍:
2.1 青云 nRF52832EK主板介绍:
2.2 青云 nRF52832EK电路详解:
第六章:nRF52832外设开发详解
6.1 GPIO的应用
6.1.1原理分析:
6.1.2软件编写:
6.1.2.1 点亮第一个LED灯
6.2.1.2 按键输入扫描
6.2 GPIOTE与外部中断
6.2.1原理分析
6.2.2应用实例编写
6.2.2.1 按键中断
6.2.2.2 GPIOTE组件的应用
6.3 定时器TIME
6.3.1原理分析
6.3.2应用实例编写
6.3.2.1 定时器定时
6.3.2.2 定时器组件的应用
6.4 串口外设应用
6.4.1原理分析
6.4.2应用实例编写
6.4.2.1 串口printf输出
6.4.2.2 串口输入与回环
6.5 PPI模块的使用
6.5.1原理分析
6.5.2应用实例编写
6.5.2.1 PPI应用之PWM
6.5.2.2 PWM组件库编程
6.6定时器输入捕获
6.6.1原理分析:
6.6.2应用实例编写
6.7 RTC实时时钟
6.7.1原理分析
6.7.2应用实例编写
6.7.2.1 TICK与比较应用
6.7.2.2 RTC组件库的使用
6.8 SAADC采集
6.8.1原理分析
6.8.2应用实例编写
6.8.2.1 ADC的单次采样
6.8.2.2 ADC的差分采样
6.8.2.3 EasyDMA之单缓冲中断采样
6.8.2.4 PPI启动双缓冲中断采样
6.9 SPI读写外部FLASH
6.9.1原理分析
6.9.2 硬件准备:
6.9.3应用实例编写
6.9.4实验现象
第三篇:蓝牙工程搭建篇
第七章:蓝牙BLE之样例的建立
1 蓝牙样例工程结构:
2 蓝牙主函数分析:
2.1外设初始化
2.1.1 log_init()函数
2.1.2 static void timers_init(void)函数
2.1.3 (void)buttons_leds_init(&erase_bonds);函数
2.2 能源管理函数初始化
2.3协议栈初始化
2.4 gap初始化和GATT初始化
2.4.1 gap_params_init()函数gap初始化;
2.4.2 gatt_init()的GATT初始化;
2.5广播初始化
2.6服务初始化
2.7 连接参数和安全参数初始化
2.8 设备管理初始化
2.9 广播开始
2.10 电源待机
3下载验证:
第八章:蓝牙程序信息log显示
1串口log输出
2 RTT 的log输出
第九章:蓝牙协议栈下定时器的使用
1:nRF51822蓝牙BLE定时器设置:
1.1 BLE定时器声明
2.2 定时器开始定时
2.3 主函数编写
2 应用与调试
2.1 下载
2.2 测试
第十章:蓝牙协议栈下按键的使用
1:按键下控制触发LED灯
1.1协议栈下按键初始化调用函数:
1.2 应用与调试
2:按键下的长按和短按
第十一章:蓝牙协议初始化详解
1:nRF52832蓝牙协议栈初始化函数结构:
2: 协议栈回复使能应答:
2.1 协议栈使能
2.2议栈时钟设置
3 协议栈默认配置设置 :
3.1配置链接数目和角色
3.2配置MTU 协商值
3.3设置定制的UUID数目
3.4 GATTS 的属性表大小
3.5 使能服务变化特征值
4 使能协议栈:
5 注册蓝牙处理事件:
6 理论应用:协议栈采用内部RC
第十二章:蓝牙协议中的通用访问规范GAP详解
1: nRF52832蓝牙GAP初识:
2: GAP软件设计分析:
3: 设备名称修改与外观设置
3.1蓝牙设备名称设置
3.2中文广播名称设置
3.3蓝牙应用图标的设置
4: GAP初始化设置连接间隔
第十三章:蓝牙广播初始化分析
1:nRF52832蓝牙BLE广播初始化:
1.1 广播参数定义:
1.2 广播模式配置:
1.3 BLE广播初始化步骤:
2:不进入IDLE无效模式
3:BLE广播响应包:
第十四章:蓝牙链接参数更新详解
1:nRF52832蓝牙协议栈初始化函数结构:
2: 链接参数更新初始化配置:
3: 参数更新过程演示:
4.本章总结:
第四篇:蓝牙profile任务建立篇
第十五章:蓝牙BLE之LED灯任务的读写
1 nRF52832蓝牙协议的分层:
1.1首先是应用层:
1.2 控制器的控制层
2主机主协议层详细说明:
2.1  通用访问规范(Generic Access Profile,GAP)
2.1.1 角色
2.1.2 广播
2.1.3 扫描
2.1.4 发起
2.1.5 连接
2.2 通用属性配置文件(Generic Attribute profile,GATT)
2.2.1角色
2.2.2 GATT的规范层次
2.2.2.1 属性
2.2.2.2 特性
2.2.2.3描述符
2.2.2.4服务
2.2.2.5 profile(数据配置文件)
2.2.3 标准的定制服务和特性
注:讲到这里大家应该清楚我们的任务就是要建立私有的profile了。
2.3如何定制私有profile服务:
2.3.1 私有服务的UUID
2.3.1.1 蓝牙技术联盟 UUID
2.3.1.2 供应商特定的UUID
 2.3.2 空中操作和性质
2.3.2.1  写和没有回应的写
2.3.2.2  读
2.3.2.3  通知和指示
3 工程框架的搭建
3.1 工程文件的添加
3.2 主服务的添加
4 私有服务的实现
4.1 服务数据结构体设置
4.2 服务初始化
4.2.1 服务初始化ble_lbs_init函数的编写
4.2.2 控制LED特征属性的建立
4.3 处理协议栈事件
4.4 处理LED特性写
4.5 应用层实现
4.5.1 包含服务
4.5.2 加入本服务的UUID到广播数据包中
5.下载验证:
第十六章:蓝牙BLE之KEY按键通知
1:原理分析与讲解:
2:工程项目的建立:
2.3.2.1私有服务的实现
2.3.1 API设计
2.3.2 实现数据结构体
2.3.3 服务初始化
2.2.3.1服务UUID的添加:
2.2.3.2按键服务特性的添加:
2.2.3.3 增加特性
2.2.4 处理协议栈事件
2.2.5 数据上传函数
2.3 应用层实现
2.3.1 使用调度
2.3.2 按键处理
2.5下载验证:
第十七章: 蓝牙BLE之电池服务
1:nRF52832蓝牙BLE电池函数库:
1.1 BLE电池函数库文件的添加
1.2 电池采样设计基本原理:
2:函数编写:
2.1 电池服务的调用
2.2 电池参数值的采集
2.3 电池电量的更新:
2.4 定时器设计
2.5 主函数编写
3 应用与调试
3.1 下载
3.2 测试
第十八章 蓝牙心电任务的建立
1工程项目的建立:
1.1 主函数的建立
1.2 外设部分初始化
1.3 服务初始化
.2 蓝牙服务程序设计
2.1 心率服务设计
2.2 电池服务设计和设备信息服务设计
3 下载验证
第十九章 蓝牙任务的UUID设置与总结
1:UUID设置规则及原理:
1.1 蓝牙技术联盟UUID
1.2 供应商特定的UUID
2:程序中UUID的设置:
2.1 蓝牙协议小组公共UUID设置
2.2 私有服务UUID设置:
2.3 UUID类型切换:
3 应用与调试
3.1 下载
3.2 测试
第五篇:蓝牙数据传输篇
第二十章 蓝牙BLE之蓝牙串口
1  工程项目的建立:
1.1 主函数的建立
1.2 外设部分初始化
1.3 服务初始化
2 蓝牙串口服务头文件的设计
2.1 串口服务函数库头文件设计:
2.2 数据结构体设计
3蓝牙串口服务的设计:
3.1  开通API应用服务
3.2   UUID设置方法
3.2.1 蓝牙技术联盟 UUID
3.2.2 供应商特定的UUID
3.3 串口接收和发送服务添加
3.4蓝牙串口服务特性的配置
3.4.1 CCCD安全设置
3.4.2 特征参数组设置
3.4.3 特征添加
3.5 处理协议栈事件
3.6 处理串口写事件
3.7 处理串口接收事件
4下载验证
第二十一章 蓝牙BLE 遥控器
1:遥控指令设置:
2应用与调试
2.1 下载
2.2 测试
第二十二章 蓝牙FLASH存储之fstorage
1 蓝牙FLASH存储介绍
2 程序API使用与编写
3 应用与调试
3.1 下载
3.2 测试
第二十三章 蓝牙FLASH存储之FDS
1 蓝牙FLASH存储FDS模块介绍
2 FDS库函数API详解
3 FDS方式编程方法
3.1 FDS配置参数
3.2 FDS配置流程
4 应用与调试
4.1 下载
4.2 测试
第二十四章 远程传输数据FLASH存储(更新中)
第二十五章 蓝牙BLE温湿度检测方法一
1:温湿度采集:
1.1 温湿度DHT11采集驱动
2:协议栈下实现流程:
2.1 初始化传感器
2.2 采集指令发送
3 应用与调试
3.1 下载
3.2 测试
第二十六章 蓝牙BLE温湿度检测方法二
1:协议栈下实现流程:
1.1 初始化传感器
1.2 私有任务建立
1.2.1 DHT11服务特性的添加:
1.2.2 增加特性:
1.2.3 采集温湿度数据上传:
1.3 定时器的建立
1.4 主函数的实现:
2 应用与调试
2.1 下载
2.2 测试
第二十七章 nrf52832 蓝牙通信包解析:
1 广播包抓取:
2 数据包抓取:
第二十八章 传输数据吞吐量的探讨(更新中)
第六篇:蓝牙参数及安全篇
第二十九章 蓝牙MAC地址
1:BLE设备地址类型:
1.1 公共设备地址Public Device Address
1.2 随机设备地址Random Device Address
1.2.1 静态设备地址Static Device Address
1.2.2 私密设备地址Private Device Address
2:nrf52832地址配置:
3 设置自己的MAC地址:
4 应用与调试
4.1 下载
4.2 测试
第三十章 蓝牙信号强度rssi的获取
1:nRF52832蓝牙BLE的rssi获取:
1.1 BLE定时器声明
1.2 定时器开始定时
1.3 主函数编写
2 应用与调试
2.1 下载
2.2 测试
第三十一章 蓝牙信号发射功率设置
1:nRF52832蓝牙BLE的发送功率设置:
2 应用与调试
第三十二章:蓝牙静态秘钥和动态秘钥配对 (待更新)
第三十三章:蓝牙绑定配对(待更新)
第三十四章:蓝牙绑定配对(待更新)
第七篇:蓝牙综合应用篇
第三十五章: 蓝牙协议栈下硬件定时器的使用
1:nRF528xx蓝牙BLE硬件定时器设置:
1.1 BLE定时器声明
1.2 定时器开始使能
1.3 主函数及中断子函数
2 应用与调试
2.1 下载
2.2 测试
第三十六章 蓝牙ibeacon的应用
1 蓝牙ibeacon的基本介绍
2 蓝牙ibeacon代码解析
3 蓝牙ibeacon的应用
3.1 蓝牙ibeacon的微信摇一摇
3.2 蓝牙测距
第三十七章:蓝牙防丢器详解
1 蓝牙防丢器原理分析:
2 蓝牙防丢器程序解析:
2.1 立即报警的服务(从机报警):
2.2 链接丢失服务:
2.3 双向报警之主机报警:
3 蓝牙防丢器调试:
4 本章总结:
第三十八章 空中升级DFU实现详解
1:DFU的功能介绍
1.1 DFU的原理
1.2 DFU升级工具
2 DFU文件制作步骤
2.1 GCC编译环境的安装
2.2 mingw 平台的安装
2.2.1 mingw 平台的安装步骤:
2.2.2环境变量的配置
2.2.3 环境安装验证及常见错误解决
2.3 micro-ecc-master 源码的添加:
2.4 micro_ecc_lib_nrf52.lib文件的生成:
2.5 python软件的安装
2.6 pc-nrfutil的安装与秘钥的生成
2.7 boot工程的hex和应用的hex生成
2.7.1 boot工程的hex生成:
2.7.2 应用工程的hex生成:
2.7.3 应用工程的zip生成:
3 程序烧录与升级
3.1 程序的烧录与升级
3.1.1 程序的烧录步骤;
3.1.2 DFU升级:
3.2 hex的烧录与合并
3.2.1 setting文件的生成与使用
3.2.2 hex文件的合并烧录:
第三十九章 空中升级DFU程序的移植
1 配置文件使能
1.1 配置文件使能方法
1.2 DFU需要使能的选项
2 工程文件添加
2.1 DFU功能支持文件添加
2.2 Peer绑定功能支持文件添加
2.3 FDS和CRC支持文件添加
3 主函数的代码添加
3.1 头文件的添加
3.2 配对函数的添加
3.3 服务初始化内DFU服务的声明
3.4 主函数的修改和宏的声明
第八篇:蓝牙组网篇
第四十一章 蓝牙主机串口详解
1:nRF52832蓝牙主机的主程序流程:
1.1 主机程序流程分析:
1.2 主机蓝牙串口过程分析:
1.2.1 主机设备和从机设备连接分析
1.3 主机蓝牙串口数据流分析:
1.3.1 从机到主机的数据流向:
1.3.2 主机发送到从机的数据流向:
2 应用与调试
2.1软件准备:
2.2 实验现象:
第四十章:主机心电(待更新)
第四十二章 蓝牙主机1拖8组网详解
1:nRF52832蓝牙主机的主程序流程:
1.1 主机程序框架搭建:
1.2 主机蓝牙组网详解:
1.2.1 主机如何判断哪个从机是需要连接的
1.2.2 多个从机设备的连接
1.3 主机和从机通信通道搭建:
1.3.1 主机设备通知使能及数据接收
1.3.1 主机设备数据写从机
2 应用与调试
2.1软件准备:
2.1.1 主机下载
2.1.2 从机下载:
2.2 实验现象:
第四十三章:蓝牙MESH组网(年后发布)
青风带你玩蓝牙 nRF52832 V1.0 淘宝地址:http://qfv5.taobao.com/ 青风带你玩蓝牙 nRF52832 系列教程..........................................................................................................12 -------------作者:青风................................................................................................................... 12 作者: 青风.......................................................................................................................................13 出品论坛: www.qfv8.com......................................................................................................................13 淘宝店:http://qfv5.taobao.com............................................................................................................13 QQ 技术群:346518370........................................................................................................................13 硬件平台:青云 QY-nRF52832 开发板...............................................................................................13 第一篇:蓝牙初步篇.....................................................................................................................................13 第一章:蓝牙 5.0 芯片 nrf52832 开发绪论................................................................................................13 1 :芯片勘定选型:................................................................................................................................13 2:开发工具的购买与选取:.............................................................................................................. 14 2.1 开发板的选取:.......................................................................................................................14 2.2 抓包器:...................................................................................................................................15 2.3 OLED 显示器:.......................................................................................................................16 2.4 仿真器:..................................................................................................................................16 3: 软件与功能开发:............................................................................................................................17 3.1 资料搜集学习:.......................................................................................................................17 3.2 勘误表自查:...........................................................................................................................17 3.3 实例开发:..............................................................................................................................18 4:产品电路设计:...............................................................................................................................23 4.1 电路图设计和 PCB 绘制........................................................................................................23 4.2 蓝牙射频性能调试..................................................................................................................24 4.3 打板与焊接..............................................................................................................................24 5:性能测试:.......................................................................................................................................25 5.1 RF 测试:.................................................................................................................................25 5.2 功耗测试:...............................................................................................................................25 5.3 认证(可选):.......................................................................................................................26 第二章:蓝牙工程包 SDK 详解...................................................................................................................27 1:SDK15 开发包的基本结构.......................................................................................................... 28 1.1 components 文件包........................................................................................................... 28 1.2 config 文件包........................................................................................................................30 1.3 documentaion 文件包....................................................................................................... 30 1.4 example 文件包...................................................................................................................31 1.5 external 文件包和 external_tool 包.............................................................................. 32 1.6 integration 文件包和 modules 文件包...........................................................................33 2:开发包外设例子和蓝牙历程说明..................................................................................................34 2.1 外设硬件例子........................................................................................................................34 2.2 蓝牙例子说明........................................................................................................................36 第三章:开发环境 keil 的使用及工程建立................................................................................................ 36 1 开发环境 KEIL5 简介..................................................................................................................... 36 2 工程项目的建立................................................................................................................................ 41 3 工程项目的仿真与调试......................................................................................................................52 3.1 仿真工具的选择与设置:..................................................................................................... 52 Copyright© 2016-2022 青风电子社区 ALL rights reserved 1
青风带你玩蓝牙 nRF52832 V1.0 淘宝地址:http://qfv5.taobao.com/ 3.2 项目仿真错误定位..................................................................................................................54 第四章:蓝牙 5.0 基础概念以及学习规划................................................................................................. 59 1 蓝牙 5.0 基础概念普及................................................................................................................. 60 1.1 蓝牙 5.0 的简介:....................................................................................................................60 1.2 蓝牙协议栈结构:...................................................................................................................62 1.3 蓝牙如何实现连接与通信:.................................................................................................. 63 1.3.1 从机广播........................................................................................................................63 1.3.2 主机扫描........................................................................................................................64 1.3.3 建立连接.......................................................................................................................65 1.3.4 发送与接收数据.......................................................................................................... 65 2 蓝牙学习规划.................................................................................................................................. 66 2.1 蓝牙外设程序学习:............................................................................................................. 67 2.2 蓝牙 BLE 程序学习:............................................................................................................68 2.2.1 第一步:蓝牙 BLE 基础工程搭建..............................................................................69 2.2.2 第二步:蓝牙任务的建立........................................................................................... 70 2.2.3 第三步:蓝牙数据传输.............................................................................................. 70 2.2.4 第四步:蓝牙参数及安全设置.................................................................................. 71 2.2.5 第五步:蓝牙综合应用。.......................................................................................... 71 第二篇:蓝牙硬件篇:.................................................................................................................................73 第五章:nRF52832 开发部硬件介绍:.......................................................................................................73 1. nRF52832DK 主板介绍:.................................................................................................................73 1.1 青云 nRF52832DK 主板介绍:............................................................................................73 1.2 青云 nRF52832DK 电路详解:............................................................................................74 2 nRF52832_EK 主板介绍:................................................................................................................ 79 2.1 青云 nRF52832EK 主板介绍:............................................................................................ 79 2.2 青云 nRF52832EK 电路详解:............................................................................................ 81 第六章:nRF52832 外设开发详解...............................................................................................................87 6.1 GPIO 的应用.................................................................................................................................... 87 6.1.1 原理分析:............................................................................................................................87 6.1.2 软件编写:............................................................................................................................90 6.1.2.1 点亮第一个 LED 灯..................................................................................................90 6.2.1.2 按键输入扫描........................................................................................................... 92 6.2 GPIOTE 与外部中断....................................................................................................................... 95 6.2.1 原理分析................................................................................................................................95 6.2.2 应用实例编写........................................................................................................................97 6.2.2.1 按键中断....................................................................................................................97 6.2.2.2 GPIOTE 组件的应用............................................................................................... 100 6.3 定时器 TIME.................................................................................................................................103 6.3.1 原理分析..............................................................................................................................103 6.3.2 应用实例编写......................................................................................................................105 6.3.2.1 定时器定时............................................................................................................. 105 6.3.2.2 定时器组件的应用................................................................................................. 109 6.4 串口外设应用................................................................................................................................112 6.4.1 原理分析..............................................................................................................................112 Copyright© 2016-2022 青风电子社区 ALL rights reserved 2
青风带你玩蓝牙 nRF52832 V1.0 淘宝地址:http://qfv5.taobao.com/ 6.4.2 应用实例编写......................................................................................................................113 6.4.2.1 串口 printf 输出.......................................................................................................113 6.4.2.2 串口输入与回环......................................................................................................118 6.5 PPI 模块的使用..............................................................................................................................121 6.5.1 原理分析..............................................................................................................................121 6.5.2 应用实例编写......................................................................................................................122 6.5.2.1 PPI 应用之 PWM..................................................................................................... 122 6.5.2.2 PWM 组件库编程....................................................................................................124 6.6 定时器输入捕获.............................................................................................................................128 6.6.1 原理分析:..........................................................................................................................128 6.6.2 应用实例编写......................................................................................................................130 6.7 RTC 实时时钟................................................................................................................................ 134 6.7.1 原理分析..............................................................................................................................134 6.7.2 应用实例编写......................................................................................................................135 6.7.2.1 TICK 与比较应用.................................................................................................... 135 6.7.2.2 RTC 组件库的使用..................................................................................................140 6.8 SAADC 采集.................................................................................................................................. 144 6.8.1 原理分析..............................................................................................................................145 6.8.2 应用实例编写......................................................................................................................148 6.8.2.1 ADC 的单次采样.................................................................................................. 148 6.8.2.2 ADC 的差分采样.................................................................................................. 152 6.8.2.3 EasyDMA 之单缓冲中断采样............................................................................. 154 6.8.2.4 PPI 启动双缓冲中断采样.................................................................................... 161 6.9 SPI 读写外部 FLASH.................................................................................................................... 166 6.9.1 原理分析..............................................................................................................................166 6.9.2 硬件准备:.........................................................................................................................167 6.9.3 应用实例编写......................................................................................................................167 6.9.4 实验现象..............................................................................................................................172 第三篇:蓝牙工程搭建篇...........................................................................................................................173 第七章:蓝牙 BLE 之样例的建立.............................................................................................................173 1 蓝牙样例工程结构:.......................................................................................................................173 2 蓝牙主函数分析:...........................................................................................................................179 2.1 外设初始化........................................................................................................................... 181 2.1.1 log_init()函数........................................................................................................... 181 2.1.2 static void timers_init(void)函数..............................................................................181 2.1.3 (void)buttons_leds_init(&erase_bonds);函数..........................................................181 2.2 能源管理函数初始化..........................................................................................................183 2.3 协议栈初始化....................................................................................................................... 184 2.4 gap 初始化和 GATT 初始化..............................................................................................185 2.4.1 gap_params_init()函数 gap 初始化;...........................................................................185 2.4.2 gatt_init()的 GATT 初始化;........................................................................................186 2.5 广播初始化........................................................................................................................... 188 2.6 服务初始化........................................................................................................................... 189 2.7 连接参数和安全参数初始化..............................................................................................191 Copyright© 2016-2022 青风电子社区 ALL rights reserved 3
青风带你玩蓝牙 nRF52832 V1.0 淘宝地址:http://qfv5.taobao.com/ 2.8 设备管理初始化..................................................................................................................192 2.9 广播开始.............................................................................................................................. 192 2.10 电源待机............................................................................................................................193 3 下载验证:........................................................................................................................................193 第八章:蓝牙程序信息 log 显示............................................................................................................... 198 1 串口 log 输出.....................................................................................................................................198 2 RTT 的 log 输出............................................................................................................................... 202 第九章:蓝牙协议栈下定时器的使用...................................................................................................... 207 1:nRF51822 蓝牙 BLE 定时器设置:.........................................................................................207 1.1 BLE 定时器声明.................................................................................................................. 207 2.2 定时器开始定时..................................................................................................................208 2.3 主函数编写.......................................................................................................................... 209 2 应用与调试...................................................................................................................................... 210 2.1 下载.................................................................................................................................... 210 2.2 测试.................................................................................................................................... 210 第十章:蓝牙协议栈下按键的使用.......................................................................................................... 214 1:按键下控制触发 LED 灯...............................................................................................................214 1.1 协议栈下按键初始化调用函数:........................................................................................ 214 1.2 应用与调试............................................................................................................................219 2:按键下的长按和短按.....................................................................................................................219 第十一章:蓝牙协议初始化详解.............................................................................................................. 222 1:nRF52832 蓝牙协议栈初始化函数结构:.............................................................................. 222 2: 协议栈回复使能应答:................................................................................................................ 223 2.1 协议栈使能............................................................................................................................223 2.2 议栈时钟设置.........................................................................................................................225 3 协议栈默认配置设置 :................................................................................................................227 3.1 配置链接数目和角色........................................................................................................... 228 3.2 配置 MTU 协商值.................................................................................................................230 3.3 设置定制的 UUID 数目........................................................................................................ 231 3.4 GATTS 的属性表大小..........................................................................................................231 3.5 使能服务变化特征值........................................................................................................... 231 4 使能协议栈:.................................................................................................................................. 233 5 注册蓝牙处理事件:......................................................................................................................233 6 理论应用:协议栈采用内部 RC................................................................................................... 236 第十二章:蓝牙协议中的通用访问规范 GAP 详解................................................................................ 237 1: nRF52832 蓝牙 GAP 初识:.................................................................................................. 237 2: GAP 软件设计分析:.................................................................................................................237 3: 设备名称修改与外观设置..........................................................................................................240 3.1 蓝牙设备名称设置.................................................................................................................240 3.2 中文广播名称设置.................................................................................................................243 3.3 蓝牙应用图标的设置............................................................................................................ 245 4: GAP 初始化设置连接间隔.........................................................................................................247 第十三章:蓝牙广播初始化分析.............................................................................................................. 253 1:nRF52832 蓝牙 BLE 广播初始化:.........................................................................................253 Copyright© 2016-2022 青风电子社区 ALL rights reserved 4
青风带你玩蓝牙 nRF52832 V1.0 淘宝地址:http://qfv5.taobao.com/ 1.1 广播参数定义:..................................................................................................................254 1.2 广播模式配置:..................................................................................................................256 1.3 BLE 广播初始化步骤:......................................................................................................258 2:不进入 IDLE 无效模式................................................................................................................ 262 3:BLE 广播响应包:........................................................................................................................263 第十四章:蓝牙链接参数更新详解.......................................................................................................... 266 1:nRF52832 蓝牙协议栈初始化函数结构:.............................................................................. 267 2: 链接参数更新初始化配置:........................................................................................................ 269 3: 参数更新过程演示:.................................................................................................................... 273 4. 本章总结:.....................................................................................................................................274 第四篇:蓝牙 profile 任务建立篇............................................................................................................275 第十五章:蓝牙 BLE 之 LED 灯任务的读写...........................................................................................275 1 nRF52832 蓝牙协议的分层:...................................................................................................275 1.1 首先是应用层:.....................................................................................................................276 1.2 控制器的控制层....................................................................................................................277 2 主机主协议层详细说明:...............................................................................................................278 2.1 通用访问规范(Generic Access Profile,GAP)............................................................. 278 2.1.1 角色.................................................................................................................................. 278 2.1.2 广播.................................................................................................................................. 278 2.1.3 扫描.................................................................................................................................. 279 2.1.4 发起.................................................................................................................................. 279 2.1.5 连接.................................................................................................................................. 279 2.2 通用属性配置文件(Generic Attribute profile,GATT)................................................. 279 2.2.1 角色................................................................................................................................... 279 2.2.2 GATT 的规范层次........................................................................................................... 280 2.2.2.1 属性......................................................................................................................280 2.2.2.2 特性......................................................................................................................280 2.2.2.3 描述符...................................................................................................................280 2.2.2.4 服务....................................................................................................................... 280 2.2.2.5 profile(数据配置文件)..................................................................................281 2.2.3 标准的定制服务和特性..................................................................................................281 注:讲到这里大家应该清楚我们的任务就是要建立私有的 profile 了。............................. 281 2.3 如何定制私有 profile 服务:................................................................................................281 2.3.1 私有服务的 UUID...........................................................................................................281 2.3.1.1 蓝牙技术联盟 UUID......................................................................................... 281 2.3.1.2 供应商特定的 UUID.......................................................................................... 282 2.3.2 空中操作和性质.............................................................................................................282 2.3.2.1 写和没有回应的写............................................................................................ 283 2.3.2.2 读.........................................................................................................................283 2.3.2.3 通知和指示........................................................................................................ 283 3 工程框架的搭建.............................................................................................................................. 283 3.1 工程文件的添加....................................................................................................................283 3.2 主服务的添加........................................................................................................................284 4 私有服务的实现.............................................................................................................................. 285 Copyright© 2016-2022 青风电子社区 ALL rights reserved 5
青风带你玩蓝牙 nRF52832 V1.0 淘宝地址:http://qfv5.taobao.com/ 4.1 服务数据结构体设置........................................................................................................... 285 4.2 服务初始化............................................................................................................................286 4.2.1 服务初始化 ble_lbs_init 函数的编写..................................................................... 286 4.2.2 控制 LED 特征属性的建立........................................................................................287 4.3 处理协议栈事件....................................................................................................................290 4.4 处理 LED 特性写..................................................................................................................290 4.5 应用层实现............................................................................................................................291 4.5.1 包含服务.....................................................................................................................291 4.5.2 加入本服务的 UUID 到广播数据包中.................................................................. 293 5.下载验证:........................................................................................................................................294 第十六章:蓝牙 BLE 之 KEY 按键通知...................................................................................................297 1:原理分析与讲解:.........................................................................................................................297 2:工程项目的建立:.........................................................................................................................298 2.3.2.1 私有服务的实现.............................................................................................................. 298 2.3.1 API 设计...........................................................................................................................298 2.3.2 实现数据结构体..............................................................................................................298 2.3.3 服务初始化......................................................................................................................299 2.2.3.1 服务 UUID 的添加:.............................................................................................. 302 2.2.3.2 按键服务特性的添加:.......................................................................................... 304 2.2.3.3 增加特性..................................................................................................................307 2.2.4 处理协议栈事件..............................................................................................................307 2.2.5 数据上传函数..................................................................................................................308 2.3 应用层实现.................................................................................................................................. 309 2.3.1 使用调度.......................................................................................................................... 309 2.3.2 按键处理.......................................................................................................................... 309 2.5 下载验证:................................................................................................................................... 311 第十七章: 蓝牙 BLE 之电池服务...........................................................................................................313 1:nRF52832 蓝牙 BLE 电池函数库:.........................................................................................314 1.1 BLE 电池函数库文件的添加........................................................................................... 314 1.2 电池采样设计基本原理:................................................................................................315 2:函数编写:.................................................................................................................................... 316 2.1 电池服务的调用................................................................................................................316 2.2 电池参数值的采集............................................................................................................317 2.3 电池电量的更新:............................................................................................................319 2.4 定时器设计........................................................................................................................ 321 2.5 主函数编写........................................................................................................................ 322 3 应用与调试...................................................................................................................................... 323 3.1 下载.................................................................................................................................... 323 3.2 测试.................................................................................................................................... 323 第十八章 蓝牙心电任务的建立.................................................................................................................326 1 工程项目的建立:.........................................................................................................................326 1.1 主函数的建立........................................................................................................................327 1.2 外设部分初始化....................................................................................................................327 1.3 服务初始化............................................................................................................................328 Copyright© 2016-2022 青风电子社区 ALL rights reserved 6
青风带你玩蓝牙 nRF52832 V1.0 淘宝地址:http://qfv5.taobao.com/ .2 蓝牙服务程序设计.........................................................................................................................330 2.1 心率服务设计........................................................................................................................330 2.2 电池服务设计和设备信息服务设计................................................................................... 338 3 下载验证.......................................................................................................................................... 341 第十九章 蓝牙任务的 UUID 设置与总结................................................................................................ 345 1:UUID 设置规则及原理:............................................................................................................ 345 1.1 蓝牙技术联盟 UUID........................................................................................................ 345 1.2 供应商特定的 UUID........................................................................................................ 345 2:程序中 UUID 的设置:.................................................................................................................348 2.1 蓝牙协议小组公共 UUID 设置....................................................................................... 348 2.2 私有服务 UUID 设置:..................................................................................................... 349 2.3 UUID 类型切换:...............................................................................................................351 3 应用与调试...................................................................................................................................... 353 3.1 下载.................................................................................................................................... 353 3.2 测试.................................................................................................................................... 354 第五篇:蓝牙数据传输篇...........................................................................................................................355 第二十章 蓝牙 BLE 之蓝牙串口...............................................................................................................355 1 工程项目的建立:.........................................................................................................................356 1.1 主函数的建立......................................................................................................................356 1.2 外设部分初始化..................................................................................................................357 1.3 服务初始化.......................................................................................................................... 359 2 蓝牙串口服务头文件的设计..........................................................................................................360 2.1 串口服务函数库头文件设计:..........................................................................................360 2.2 数据结构体设计..................................................................................................................361 3 蓝牙串口服务的设计:...................................................................................................................364 3.1 开通 API 应用服务............................................................................................................ 364 3.2 UUID 设置方法................................................................................................................367 3.2.1 蓝牙技术联盟 UUID............................................................................................. 367 3.2.2 供应商特定的 UUID.............................................................................................. 367 3.3 串口接收和发送服务添加..................................................................................................369 3.4 蓝牙串口服务特性的配置...................................................................................................370 3.4.1 CCCD 安全设置......................................................................................................372 3.4.2 特征参数组设置......................................................................................................372 3.4.3 特征添加..................................................................................................................373 3.5 处理协议栈事件..................................................................................................................373 3.6 处理串口写事件..................................................................................................................374 3.7 处理串口接收事件..............................................................................................................377 4 下载验证........................................................................................................................................... 380 第二十一章 蓝牙 BLE 遥控器..................................................................................................................383 1:遥控指令设置:............................................................................................................................ 383 2 应用与调试....................................................................................................................................... 384 2.1 下载.................................................................................................................................... 384 2.2 测试.................................................................................................................................... 384 第二十二章 蓝牙 FLASH 存储之 fstorage................................................................................................387 Copyright© 2016-2022 青风电子社区 ALL rights reserved 7
青风带你玩蓝牙 nRF52832 V1.0 淘宝地址:http://qfv5.taobao.com/ 1 蓝牙 FLASH 存储介绍...................................................................................................................387 2 程序 API 使用与编写................................................................................................................... 389 3 应用与调试...................................................................................................................................... 395 3.1 下载.................................................................................................................................... 395 3.2 测试.................................................................................................................................... 395 第二十三章 蓝牙 FLASH 存储之 FDS................................................................................................... 396 1 蓝牙 FLASH 存储 FDS 模块介绍...............................................................................................396 2 FDS 库函数 API 详解.................................................................................................................. 397 3 FDS 方式编程方法.......................................................................................................................402 3.1 FDS 配置参数..................................................................................................................... 402 3.2 FDS 配置流程..................................................................................................................... 404 4 应用与调试...................................................................................................................................... 411 4.1 下载.................................................................................................................................... 411 4.2 测试.................................................................................................................................... 412 第二十四章 远程传输数据 FLASH 存储(更新中)..............................................................................413 第二十五章 蓝牙 BLE 温湿度检测方法一...............................................................................................413 1:温湿度采集:................................................................................................................................ 413 1.1 温湿度 DHT11 采集驱动.................................................................................................. 413 2:协议栈下实现流程:.................................................................................................................... 416 2.1 初始化传感器.................................................................................................................... 416 2.2 采集指令发送.................................................................................................................... 418 3 应用与调试...................................................................................................................................... 419 3.1 下载.................................................................................................................................... 419 3.2 测试.................................................................................................................................... 420 第二十六章 蓝牙 BLE 温湿度检测方法二...............................................................................................422 1:协议栈下实现流程:.................................................................................................................... 423 1.1 初始化传感器.................................................................................................................... 423 1.2 私有任务建立.................................................................................................................... 424 1.2.1 DHT11 服务特性的添加:........................................................................................ 424 1.2.2 增加特性:.................................................................................................................426 1.2.3 采集温湿度数据上传:............................................................................................ 427 1.3 定时器的建立.................................................................................................................... 428 1.4 主函数的实现:................................................................................................................429 2 应用与调试...................................................................................................................................... 430 2.1 下载.................................................................................................................................... 430 2.2 测试.................................................................................................................................... 431 第二十七章 nrf52832 蓝牙通信包解析:................................................................................................434 1 广播包抓取:...................................................................................................................................434 2 数据包抓取:...................................................................................................................................439 第二十八章 传输数据吞吐量的探讨(更新中).................................................................................... 441 第六篇:蓝牙参数及安全篇.......................................................................................................................441 第二十九章 蓝牙 MAC 地址..................................................................................................................... 441 1:BLE 设备地址类型:....................................................................................................................441 1.1 公共设备地址 Public Device Address.......................................................................442 Copyright© 2016-2022 青风电子社区 ALL rights reserved 8
分享到:
收藏