第1章 蓝牙的发展历程 1
1.1 什么是蓝牙及蓝牙联盟? 1
1.2 低功耗蓝牙技术(Bluetooth Low Energy)的发展 2
1.2.1 低功耗蓝牙的诞生 2
1.2.2 关于蓝牙3.0 4
1.2.3 关于蓝牙4.0 4
1.2.4 蓝牙4.0的双模式及单模式应用 5
1.2.5 关于蓝牙4.1 7
1.2.6 关于蓝牙4.2 7
第2章 低功耗蓝牙基础 9
2.1 什么是低功耗? 9
2.2 低功耗蓝牙如何实现低功耗? 10
2.2.1 待机功耗的减少 10
2.2.2 快速连接的实现 10
2.2.3 峰值功耗的降低 11
2.2.4 以时间来换取能量 12
第3章 实验平台硬件资源详解 14
3.1 移动互联综合应用开发系统资源介绍 14
3.1.1 XT-EDU-AK介绍 15
3.1.2 XT-EDU-HK介绍 16
3.1.3 配套传感器模块和OLED屏介绍 16
3.1.4 Debug调试接口 18
3.2 部分硬件电路原理图详解 18
3.2.1 nRF51822蓝牙模块电路 18
3.2.2 XT-EDU-AK主板 19
3.3 归纳总结 21
第4章 开发环境的搭建 22
4.1 综合开发环境nRFgo Studio的使用 22
4.2 主机软件Master Control Pannel的使用 25
4.3 Keil MDK开发环境下的调试方法 29
4.4 学习资料文档、工具介绍 32
4.5 nRF51 Dongle的使用 32
4.5.1 与Master Control Pannel配合,作为主机进行使用 32
4.5.2 与wireshark配合,更新为sniffer的固件,作为抓包工具使用 35
4.6 归纳总结 44
第5章 GPIO的使用 45
5.1 GPIO简介 45
5.2 硬件设计 49
5.3 软件设计 50
5.3.1 跑马灯实验 50
5.3.2 按键输入实验 51
5.4 归纳总结 53
第6章 GPIOTE的使用 54
6.1 GPIOTE简介 54
6.2 硬件设计 56
6.3 软件设计 57
6.4 归纳总结 59
第7章 玩转SPI主从 60
7.1 SPI简介 60
7.2 硬件设计 62
7.3 软件设计 63
7.4 归纳总结 69
第8章 有趣的UART 70
8.1 DART简介 70
8.2 硬件设计 74
8.3 软件设计 75
8.4 归纳总结 77
第9章 TIMER详解 78
9.1 TIMER简介 78
9.2 硬件设计 81
9.3 软件设计 82
9.4 归纳总结 84
第10章 RTC实时时钟定时器 85
10.1 RTC简介 85
10.1.1 计数器COUNTER 86
10.1.2 分频器PRESCALER 86
10.1.3 TICK事件发生器 86
10.2 硬件设计 87
10.3 软件设计 88
10.3.1 LED灯初始化 89
10.3.2 LFCLK初始化 89
10.3.3 RTC初始化 89
10.3.4 中断处理函数 90
10.4 归纳总结 91
第11章 PPI的应用之PWM 92
11.1 PWM简介 92
11.2 硬件设计 94
11.3 软件设计 95
11.4 归纳总结 98
第12章 ADC实验与电压检测 99
12.1 ADC简介 99
12.2 硬件设计 101
12.3 软件设计 102
12.4 归纳总结 104
第13章 TWI的应用——温湿度采集 105
13.1 TWI简介 105
13.2 硬件设计 109
13.3 软件设计 110
13.4 归纳总结 115
第14章 随机数发生器RNG 117
14.1 RNG简介 117
14.2 硬件设计 118
14.3 软件设计 118
14.4 归纳总结 119
第15章 AES加密的使用 120
15.1 AES ECB简介 120
15.2 硬件设计 121
15.3 软件设计 121
15.4 归纳总结 123
第16章 2.4G无线通信实验 124
16.1 2.4G射频简介 124
16.2 硬件设计 133
16.3 软件设计 133
16.4 归纳总结 136
第17章 Hello BLE 137
17.1 低功耗蓝牙简介 137
17.2 硬件设计 140
17.3 软件设计 140
17.4 归纳总结 143
第18章 低功耗处理 144
18.1 BLE低功耗处理简介 144
18.1.1 电源管理的特点 144
18.1.2 两种不同的电源模式比较 144
18.1.3 外设模块启动后的功耗预估 145
18.1.4 低功耗在软件中的设置 146
18.2 硬件设计 151
18.3 软件设计 151
18.4 归纳总结 152
第19章 低功耗蓝牙协议栈下的Flash操作 157
19.1 存储管理器(Persistent Storage Manager)简介 157
19.1.1 API功能介绍 159
19.1.2 初始化 160
19.1.3 注册模块 160
19.1.4 获取指定Block的Handle 161
19.1.5 读取Flash中的数据 161
19.1.6 存储数据 162
19.1.7 清除数据 163
19.1.8 更新数据 164
19.1.9 获取对Flash操作挂起的任务数量 165
19.2 硬件设计 166
19.3 软件设计 166
19.4 归纳总结 170
第20章 OLED显示屏应用 172
20.1 OLED显示屏简介 172
20.2 硬件设计 173
20.3 软件设计 174
20.4 归纳总结 180
第21章 DFU固件空中升级 182
21.1 DFU简介 182
21.2 硬件设计 186
21.3 软件设计 187
21.4 归纳总结 188
21.4.1 烧录固件到实验板 188
21.4.2 将.axf生成.bin文件 189
21.4.3 使用zip文件在手机进行DFU 192
第22章 低功耗蓝牙主机端应用 194
22.1 低功耗蓝牙主机简介 194
22.2 硬件设计 196
22.3 软件设计 197
22.4 归纳总结 202
第23章 低功耗蓝牙血压计 204
23.1 低功耗蓝牙血压计简介 204
23.2 硬件设计 205
23.3 软件设计 206
23.4 归纳总结 211
第24章 低功耗蓝牙温湿度计 214
24.1 温湿度计简介 214
24.2 硬件设计 215
24.3 软件设计 216
24.4 归纳总结 220
第25章 低功耗蓝牙计步器 221
25.1 计步器简介 221
25.2 硬件设计 222
25.3 软件设计 223
25.4 归纳总结 230
第26章 低功耗蓝牙心率计 231
26.1 心率计简介 231
26.2 硬件设计 231
26.3 软件设计 234
26.4 归纳总结 238
参考文献 240