艾克姆科技 
 
nRF52832 开发指南-上册 
[基于 Nordic  蓝牙低功耗/2.4GHz Soc-nRF52832] 
 
艾克姆科技飞宇团队 
[2018.9.30] 
官方店铺:https://acmemcu.taobao.com 
官方论坛:http://930ebbs.com   
艾克姆科技原创发布 
本文档技术支持负责人:强光手电 
 
 
 
 
 
 
 
 
 
 
 
 
 
[本文档以艾克姆科技 IK-52832DK 开发套件为硬件平台,通过原理分析和实验程序讲解
以及实验演示,让读者以最短的时间掌握 nRF52832 的外设功能和使用。文档从无到有,
一步步讲解各个实验的硬件原理、软件编程,从新建最简单的裸机工程开始到实现各个
外设(UART、GPIOTE、定时器等等)的应用,每个例子都会说明以哪个实验为基础修
改,需要增加哪些文件以及头文件引用和包含] 
 
目录 
 
第一章:开发板硬件描述 ............................................................................................................. 14 
1.  功能特点 ................................................................................................................................. 14 
2.  硬件原理 ................................................................................................................................. 15 
nRF52832 特点 ....................................................................................................... 16 
2.1. 
电源 ......................................................................................................................... 17 
2.2. 
指示灯 ..................................................................................................................... 17 
2.3. 
轻触按键和触摸按键 ............................................................................................. 18 
2.4. 
蜂鸣器 ..................................................................................................................... 19 
2.5. 
电位器检测 ............................................................................................................. 19 
2.6. 
红外接收 ................................................................................................................. 20 
2.7. 
USB 转 UART ........................................................................................................ 21 
2.8. 
I2S 音频模块接口 .................................................................................................. 21 
2.9. 
2.10.  显示模块接口 ......................................................................................................... 21 
2.11.  Wifi 模块和 NFC 天线接口 ................................................................................... 22 
2.12.  温湿度和 PM2.5 检测模块接口 ............................................................................ 23 
2.13.  运动传感器模块接口 ............................................................................................. 23 
TF 卡座 ................................................................................................................... 24 
2.14. 
2.15.  调试接口 ................................................................................................................. 24 
3.  开发板硬件连接 ..................................................................................................................... 25 
第二章:开发工具 ......................................................................................................................... 27 
1.  硬件设备 ................................................................................................................................. 27 
2.  软件工具 ................................................................................................................................. 27 
第三章:搭建开发环境 ................................................................................................................. 28 
1.  需要的工具软件 ..................................................................................................................... 28 
2.  搭建开发环境 ......................................................................................................................... 28 
安装串口驱动 ......................................................................................................... 28 
安装 MDK5.23 ....................................................................................................... 29 
Keil μVision 简介 ........................................................................................... 29 
2.2.1. 
2.2.2.  MDK5.23 安装步骤 ....................................................................................... 29 
安装 pack ................................................................................................................ 33 
安装 nRFgo Studio ................................................................................................. 35 
安装 JLINK 驱动 .................................................................................................... 41 
手机端 APP 安装 ................................................................................................... 44 
第四章:新建和配置裸机工程 ..................................................................................................... 46 
1.  SDK 库简介 ............................................................................................................................ 46 
2.  新建和配置工程 ..................................................................................................................... 47 
新建工程模板 ......................................................................................................... 48 
2.1.1.  规划工程目录 ................................................................................................. 48 
2.1.2.  建立目录、拷贝库文件 ................................................................................. 48 
2.1.3.  新建工程 ......................................................................................................... 49 
2.1.4.  添加需要的组件 ............................................................................................. 53 
配置工程 ................................................................................................................. 56 
2.2.1.  配置“Target”选项卡 ................................................................................... 56 
2.3. 
2.4. 
2.5. 
2.6. 
2.1. 
2.2. 
2.1. 
2.2. 
 
2.1. 
2.2. 
2.3. 
3.1. 
3.2. 
2.4. 
2.5. 
2.6. 
2.2.2.  配置“Output”选项卡 .................................................................................. 57 
2.2.3.  配置“C/C++”选项卡 .................................................................................. 58 
2.2.4.  配置“Debug”选项卡 .................................................................................. 61 
编写驱动 LED 代码 ............................................................................................... 63 
2.3.1.  新建 main.c 文件并添加到工程。 ................................................................ 63 
2.3.2.  引用头文件 ..................................................................................................... 64 
2.3.3.  编写代码 ......................................................................................................... 64 
编译工程 ................................................................................................................. 65 
程序烧写 ................................................................................................................. 66 
MDK 常用操作 ...................................................................................................... 66 
第五章:程序下载 ......................................................................................................................... 70 
1.  下载方式概述 ......................................................................................................................... 70 
2.  方式 1:MDK 直接下载 ....................................................................................................... 70 
下载裸机程序 ......................................................................................................... 70 
下载 BLE 程序 ....................................................................................................... 71 
2.2.1.  下载协议栈 ..................................................................................................... 71 
2.2.2.  下载应用程序 ................................................................................................. 72 
2.2.3.  全片擦除芯片 ................................................................................................. 73 
本节常见问题 ......................................................................................................... 73 
3.  方式 2:使用 J-Flash 下载 .................................................................................................... 75 
J-Flash 简介 ............................................................................................................ 75 
使用 J-Flash ............................................................................................................ 76 
3.2.1.  启动 J-Flash .................................................................................................... 76 
3.2.2.  配置工程 ......................................................................................................... 77 
3.2.3.  擦除芯片 ......................................................................................................... 78 
3.2.4.  烧写和运行程序 ............................................................................................. 79 
3.2.5.  关闭 J-Flash .................................................................................................... 79 
4.  方式 3:nRFgo Studio 下载 .................................................................................................. 79 
下载裸机程序 ......................................................................................................... 79 
下载 BLE 程序 ....................................................................................................... 80 
4.2.1.  下载协议栈 ..................................................................................................... 80 
4.2.2.  下载应用程序 ................................................................................................. 81 
4.2.3.  擦除芯片 ......................................................................................................... 82 
第六章:GPIO 输出驱动 LED ...................................................................................................... 83 
1.  学习目的 ................................................................................................................................. 83 
2.  硬件电路设计 ......................................................................................................................... 83 
控制方式 ................................................................................................................. 84 
LED 限流电阻的选取 ............................................................................................ 85 
3.  GPIO 输出驱动原理 .............................................................................................................. 86 
功能描述 ................................................................................................................. 86 
引脚的驱动能力 ..................................................................................................... 87 
GPIO 应用注意事项 .............................................................................................. 88 
4.  软件设计 ................................................................................................................................. 89 
GPIO 配置 .............................................................................................................. 89 
3.1. 
3.2. 
3.3. 
4.1. 
4.2. 
2.1. 
2.2. 
4.1. 
2.3. 
 
 
4.2. 
4.3. 
4.4. 
3.1. 
3.2. 
库函数的应用 ......................................................................................................... 93 
驱动 LED 闪烁 ....................................................................................................... 97 
4.3.1.  代码编写 ......................................................................................................... 97 
4.3.2.  硬件连接 ......................................................................................................... 98 
4.3.3.  实验步骤 ......................................................................................................... 98 
实现流水灯 ............................................................................................................. 98 
4.4.1.  代码编写 ......................................................................................................... 99 
4.4.2.  硬件连接 ....................................................................................................... 102 
4.4.3.  实验步骤 ....................................................................................................... 102 
第七章:GPIO 输出驱动有源蜂鸣器 ........................................................................................ 104 
1.  学习目的 ............................................................................................................................... 104 
2.  硬件电路设计 ....................................................................................................................... 104 
3.  软件设计 ............................................................................................................................... 105 
GPIO 配置 ............................................................................................................ 105 
驱动蜂鸣器鸣响实验 ........................................................................................... 105 
3.2.1.  代码编写 ....................................................................................................... 105 
3.2.2.  硬件连接 ....................................................................................................... 106 
3.2.3.  实验步骤 ....................................................................................................... 106 
第八章:GPIO 输入按键检测 .................................................................................................... 108 
1.  学习目的 ............................................................................................................................... 108 
2.  硬件电路设计 ....................................................................................................................... 108 
2.1.1.  轻触按键 ....................................................................................................... 108 
2.1.2.  触摸按键 ....................................................................................................... 109 
2.1.3.  按键检测电路考虑因素 ............................................................................... 110 
3.  GPIO 输入检测原理 ............................................................................................................ 111 
4.  软件设计 ............................................................................................................................... 112 
GPIO 配置 ............................................................................................................ 112 
库函数的应用 ....................................................................................................... 113 
轻触按键检测实验 ............................................................................................... 116 
4.3.1.  代码编写 ....................................................................................................... 116 
4.3.2.  硬件连接 ....................................................................................................... 118 
4.3.3.  实验步骤 ....................................................................................................... 119 
触摸按键检测实验 ............................................................................................... 119 
4.4.1.  代码编写 ....................................................................................................... 119 
4.4.2.  硬件连接 ....................................................................................................... 120 
4.4.3.  实验步骤 ....................................................................................................... 121 
第九章:寄存器类型和外设资源共享 ....................................................................................... 122 
1.  学习目的 ............................................................................................................................... 122 
2.  寄存器类型 ........................................................................................................................... 122 
3.  外设资源共享 ....................................................................................................................... 123 
第十章:UART 和 UARTE ......................................................................................................... 126 
1.  学习目的 ............................................................................................................................... 126 
2.  硬件电路设计 ....................................................................................................................... 126 
3.  UART 原理 ........................................................................................................................... 127 
4.1. 
4.2. 
4.3. 
 
 
4.4. 
 
5.1. 
5.2. 
5.3. 
7.1. 
3.1. 
3.2. 
3.3. 
3.4. 
3.5. 
3.6. 
3.7. 
功能描述 ............................................................................................................... 127 
配置引脚 ............................................................................................................... 128 
UART 发送 ........................................................................................................... 128 
UART 接收 ........................................................................................................... 129 
UART 挂起 ........................................................................................................... 130 
错误产生条件 ....................................................................................................... 130 
奇偶校验 ............................................................................................................... 130 
4.  UART 寄存器 ....................................................................................................................... 130 
5.  UARTE 原理......................................................................................................................... 136 
功能描述 ............................................................................................................... 136 
UARTE 发送 ......................................................................................................... 137 
UARTE 接收 ......................................................................................................... 138 
6.  UARTE 寄存器..................................................................................................................... 138 
7.  软件设计 ............................................................................................................................... 143 
库函数的应用 ....................................................................................................... 143 
7.1.1.  串口初始化 ................................................................................................... 143 
7.1.2.  串口事件处理 ............................................................................................... 145 
7.1.3.  启用 UARTE ................................................................................................. 146 
7.1.4.  发送和接收数据 ........................................................................................... 147 
串口数据收发实验 ............................................................................................... 147 
7.2.1.  添加需要的文件 ........................................................................................... 147 
7.2.2.  头文件引用和路径设置 ............................................................................... 148 
7.2.3.  工程配置 ....................................................................................................... 149 
7.2.4.  代码编写 ....................................................................................................... 149 
7.2.5.  硬件连接 ....................................................................................................... 151 
7.2.6.  实验步骤 ....................................................................................................... 152 
串口发送和接收事件实验 ................................................................................... 152 
7.3.1.  代码编写 ....................................................................................................... 153 
7.3.2.  硬件连接 ....................................................................................................... 154 
7.3.3.  实验步骤 ....................................................................................................... 154 
串口控制 LED 指示灯实验 ................................................................................. 154 
7.4.1.  代码编写 ....................................................................................................... 154 
7.4.2.  硬件连接 ....................................................................................................... 156 
7.4.3.  实验步骤 ....................................................................................................... 156 
第十一章:GPIO 任务和事件(GPIOTE) .................................................................................... 157 
1.  学习目的 ............................................................................................................................... 157 
2.  GPIOTE 原理 ....................................................................................................................... 157 
GPIOTE 功能 ....................................................................................................... 157 
引脚任务和事件 ................................................................................................... 158 
PORT 事件 ............................................................................................................ 159 
3.  GPIOTE 寄存器 ................................................................................................................... 159 
4.  软件设计 ............................................................................................................................... 164 
库函数的应用 ....................................................................................................... 164 
GPIOTE 输出流程................................................................................................ 165 
2.1. 
2.2. 
2.3. 
4.1. 
4.2. 
7.2. 
7.3. 
7.4. 
 
4.5. 
4.6. 
4.1. 
4.3. 
4.4. 
GPIOTE 输入流程................................................................................................ 170 
GPIOTE 通道输出实验 ........................................................................................ 172 
4.4.1.  添加需要的文件 ........................................................................................... 172 
4.4.2.  头文件引用和路径设置 ............................................................................... 172 
4.4.3.  工程配置 ....................................................................................................... 173 
4.4.4.  代码编写 ....................................................................................................... 174 
4.4.5.  硬件连接 ....................................................................................................... 175 
4.4.6.  实验步骤 ....................................................................................................... 175 
GPIOTE 通道输入实验 ........................................................................................ 176 
4.5.1.  代码编写 ....................................................................................................... 176 
4.5.2.  硬件连接 ....................................................................................................... 177 
4.5.3.  实验步骤 ....................................................................................................... 178 
GPIOTE PORT 输入实验 ..................................................................................... 179 
4.6.1.  代码编写 ....................................................................................................... 179 
4.6.2.  硬件连接 ....................................................................................................... 182 
4.6.3.  实验步骤 ....................................................................................................... 183 
第十二章:定时/计数器 .............................................................................................................. 183 
1.  学习目的 ............................................................................................................................... 184 
2.  TIMER 原理 ......................................................................................................................... 184 
3.  TIMER 寄存器 ..................................................................................................................... 187 
4.  软件设计 ............................................................................................................................... 192 
库函数的应用(定时器) ........................................................................................ 192 
4.1.1.  定时器驱动程序实例 ................................................................................... 193 
4.1.2.  定时器初始化 ............................................................................................... 194 
4.1.3.  配置定时时间和 CC 通道............................................................................ 197 
4.1.4.  启动/关闭定时器 .......................................................................................... 200 
库函数的应用(计数器) ........................................................................................ 201 
4.2.1.  计数模式时的初始化 ................................................................................... 201 
4.2.2.  计数 ............................................................................................................... 202 
4.2.3.  读取计数值 ................................................................................................... 202 
定时实验 ............................................................................................................... 203 
4.3.1.  添加需要的文件 ........................................................................................... 204 
4.3.2.  头文件引用和路径设置 ............................................................................... 204 
4.3.3.  工程配置 ....................................................................................................... 205 
4.3.4.  代码编写 ....................................................................................................... 205 
4.3.5.  硬件连接 ....................................................................................................... 207 
4.3.6.  实验步骤 ....................................................................................................... 207 
计数实验 ............................................................................................................... 208 
4.4.1.  代码编写 ....................................................................................................... 208 
4.4.2.  硬件连接 ....................................................................................................... 209 
4.4.3.  实验步骤 ....................................................................................................... 209 
第十三章:可编程外设互联 PPI ................................................................................................ 211 
1.  学习目的 ............................................................................................................................... 211 
2.  PPI 原理 ................................................................................................................................ 211 
4.2. 
4.3. 
 
 
4.4. 
4.1. 
4.2. 
4.3. 
4.4. 
2.1. 
2.2. 
2.3. 
2.4. 
什么是 PPI ............................................................................................................ 211 
PPI 原理框图 ........................................................................................................ 212 
预编程 PPI 通道 ................................................................................................... 213 
PPI 组 .................................................................................................................... 213 
3.  PPI 寄存器 ............................................................................................................................ 214 
4.  软件设计 ............................................................................................................................... 217 
库函数的应用 ....................................................................................................... 217 
4.1.1.  初始化 PPI 程序模块 ................................................................................... 217 
4.1.2.  申请 PPI 通道 ............................................................................................... 218 
4.1.3.  配置 PPI 通道的 EEP 和 TEP 及次级任务 ................................................. 218 
4.1.4.  使能 PPI 通道 ............................................................................................... 221 
4.1.5.  使用 PPI 通道组 ........................................................................................... 221 
PPI 连接 GPIOTE 事件和任务实验 .................................................................... 223 
4.2.1.  添加需要的文件 ........................................................................................... 224 
4.2.2.  头文件引用和路径设置 ............................................................................... 224 
4.2.3.  工程配置 ....................................................................................................... 225 
4.2.4.  代码编写 ....................................................................................................... 225 
4.2.5.  硬件连接 ....................................................................................................... 227 
4.2.6.  实验步骤 ....................................................................................................... 227 
PPI 次级任务实验 ................................................................................................ 228 
4.3.1.  代码编写 ....................................................................................................... 228 
4.3.2.  硬件连接 ....................................................................................................... 229 
4.3.3.  实验步骤 ....................................................................................................... 229 
PPI 组实验 ............................................................................................................ 230 
4.4.1.  代码编写 ....................................................................................................... 230 
4.4.2.  硬件连接 ....................................................................................................... 232 
4.4.3.  实验步骤 ....................................................................................................... 233 
第十四章:非易失性存储器控制器 NVMC .............................................................................. 234 
1.  学习目的 ............................................................................................................................... 234 
2.  NVMC 原理 .......................................................................................................................... 234 
3.  NVMC 寄存器 ...................................................................................................................... 236 
4.  软件设计 ............................................................................................................................... 238 
库函数的应用(定时器) ........................................................................................ 238 
4.1.1.  规划写入数据的 Flash 空间 ........................................................................ 239 
4.1.2.  擦除页 ........................................................................................................... 239 
4.1.3.  写 ................................................................................................................... 239 
4.1.4.  读 ................................................................................................................... 240 
Flash 读写实验 ..................................................................................................... 240 
4.2.1.  添加需要的文件 ........................................................................................... 240 
4.2.2.  头文件引用和路径设置 ............................................................................... 240 
4.2.3.  代码编写 ....................................................................................................... 241 
4.2.4.  硬件连接 ....................................................................................................... 242 
4.2.5.  实验步骤 ....................................................................................................... 243 
第十五章:看门狗定时器 ........................................................................................................... 244 
4.1. 
 
 
4.2. 
 
4.1. 
4.2. 
2.1. 
2.2. 
1.  学习目的 ............................................................................................................................... 244 
2.  看门狗定时器原理 ............................................................................................................... 244 
3.  WDT 寄存器 ........................................................................................................................ 245 
4.  软件设计 ............................................................................................................................... 248 
库函数的应用 ....................................................................................................... 248 
4.1.1.  看门狗定时器初始化 ................................................................................... 248 
4.1.2.  申请喂狗通道 ............................................................................................... 250 
4.1.3.  启动看门狗 ................................................................................................... 251 
4.1.4.  喂狗 ............................................................................................................... 251 
看门狗实验 ........................................................................................................... 251 
4.2.1.  添加需要的文件 ........................................................................................... 252 
4.2.2.  头文件引用和路径设置 ............................................................................... 252 
4.2.3.  工程配置 ....................................................................................................... 253 
4.2.4.  代码编写 ....................................................................................................... 253 
4.2.5.  硬件连接 ....................................................................................................... 255 
4.2.6.  实验步骤 ....................................................................................................... 256 
第十六章:模数转换 SAADC .................................................................................................... 257 
1.  学习目的 ............................................................................................................................... 257 
2.  SAADC 原理 ........................................................................................................................ 257 
主要特征 ............................................................................................................... 257 
工作模式 ............................................................................................................... 259 
3.  SAADC 寄存器 .................................................................................................................... 260 
4.  软件设计 ............................................................................................................................... 271 
库函数的应用 ....................................................................................................... 271 
4.1.1.  初始化 SAADC ............................................................................................ 272 
4.1.2.  配置 SAADC 通道 ....................................................................................... 274 
4.1.3.  配置缓存 ....................................................................................................... 277 
4.1.4.  启动 SAADC 采样 ....................................................................................... 280 
堵塞模式-单端输入采样实验 ............................................................................. 280 
4.2.1.  添加需要的文件 ........................................................................................... 281 
4.2.2.  头文件引用和路径设置 ............................................................................... 281 
4.2.3.  工程配置 ....................................................................................................... 282 
4.2.4.  代码编写 ....................................................................................................... 282 
4.2.5.  硬件连接 ....................................................................................................... 284 
4.2.6.  实验步骤 ....................................................................................................... 284 
堵塞模式-差分输入采样实验 ............................................................................. 285 
4.3.1.  代码编写 ....................................................................................................... 285 
4.3.2.  硬件连接 ....................................................................................................... 286 
4.3.3.  实验步骤 ....................................................................................................... 286 
非堵塞模式-双缓存采样实验 ............................................................................. 286 
4.4.1.  代码编写 ....................................................................................................... 286 
4.4.2.  硬件连接 ....................................................................................................... 289 
4.4.3.  实验步骤 ....................................................................................................... 289 
电池电压采样实验 ............................................................................................... 290 
4.1. 
4.2. 
4.3. 
4.4. 
4.5.