本书以医疗电子单片机高级开发系统(LY-ST429M型单片机高级开发平台+LY-M501型人体生理参数监测系统)为平台,共安排18个实验,其中实验1~实验13为微控制器基础实验,实验14~实验18为医疗电子专业实验。所有实验均详细介绍了实验内容、设计思路,并且都有详细的步骤和源代码,以确保读者能够顺利完成。每章的最后都安排了一个任务,作为本章实验的延伸和拓展。本书中的程序均按照《C语言软件设计规范(LY-STD001——2019)》编写。所有实验均基于模块化设计,这样有利于将模块应用于不同的项目和产品中。本书配有丰富的资料包,包括医疗电子单片机高级开发系统原理图、例程、软件包、硬件套件,以及配套的PPT、视频等。这些资料会持续更新,下载链接可通过微信公众号“卓越工程师培养系列”获取。本书既可以作为高等院校相关课程的教材,也可作为微控制器系统设计及相关行业工程技术人员的参考书。
2011年7月-至今 深圳大学医学部生物医学工程学院从事生物医学工程专业实践类教学工作。编写出版《电路设计与制作实用教程(PADS版)》《电路设计与制作实用教程(Altium Designer版)》等。
第1章 STM32F4开发平台和工具 1
1.1 STM32微控制器简介 1
1.2 STM32开发工具的安装与配置 2
1.2.1 安装Keil 5.20 2
1.2.2 配置Keil 5.20 4
1.3 医疗电子单片机高级开发系统简介 5
1.4 基于医疗电子单片机高级开发系统可开展的部分实验 7
1.5 本书配套的资料包 7
本章任务 8
本章习题 8
第2章 实验1—F429基准工程 9
2.1 实验内容 9
2.2 实验原理 9
2.2.1 寄存器与固件库 9
2.2.2 Keil编辑和编译以及STM32下载过程 13
2.2.3 STM32工程模块名称及说明 13
2.2.4 STM32参考资料 14
2.3 实验步骤 15
本章任务 27
本章习题 27
第3章 实验2—GPIO与LED闪烁 29
3.1 实验内容 29
3.2 实验原理 29
3.2.1 LED电路原理图 29
3.2.2 STM32系统架构与存储器组织 29
3.2.3 GPIO功能框图 32
3.2.4 GPIO寄存器 34
3.2.5 GPIO固件库函数 39
3.3 实验步骤 42
本章任务 48
本章习题 49
第4章 实验3—GPIO与独立按键输入 50
4.1 实验内容 50
4.2 实验原理 50
4.2.1 独立按键电路原理图 50
4.2.2 GPIO功能框图 50
4.2.3 GPIO寄存器 51
4.2.4 GPIO固件库函数 52
4.2.5 按键去抖原理 52
4.3 实验步骤 54
本章任务 60
本章习题 60
第5章 实验4—串口通信 61
5.1 实验内容 61
5.2 实验原理 61
5.2.1 电路原理 61
5.2.2 UART通信协议 61
5.2.3 UART功能框图 64
5.2.4 UART部分寄存器 67
5.2.5 UART部分固件库函数 71
5.2.6 STM32异常和中断 76
5.2.7 NVIC中断控制器 77
5.2.8 NVIC部分寄存器 78
5.2.9 NVIC部分固件库函数 81
5.2.10 UART1模块驱动设计 84
5.3 实验步骤 88
本章任务 98
本章习题 99
第6章 实验5—定时器 100
6.1 实验内容 100
6.2 实验原理 100
6.2.1 通用定时器功能框图 100
6.2.2 通用定时器部分寄存器 102
6.2.3 通用定时器部分固件库函数 105
6.3 实验步骤 108
本章任务 113
本章习题 114
第7章 实验6—系统节拍时钟 115
7.1 实验内容 115
7.2 实验原理 115
7.2.1 SysTick功能框图 115
7.2.2 SysTick实验流程图分析 116
7.2.3 SysTick部分寄存器 117
7.2.4 SysTick部分固件库函数 119
7.3 实验步骤 119
本章任务 123
本章习题 123
第8章 实验7—RCC 124
8.1 实验内容 124
8.2 实验原理 124
8.2.1 RCC功能框图 124
8.2.2 RCC部分寄存器 127
8.2.3 RCC部分固件库函数 132
8.2.4 PWR寄存器 141
8.2.5 PWR部分固件库函数 143
8.2.6 Flash部分寄存器 145
8.2.7 Flash部分固件库函数 149
8.3 实验步骤 152
本章任务 156
本章习题 156
第9章 实验8—外部中断 157
9.1 实验内容 157
9.2 实验原理 157
9.2.1 EXTI功能框图 157
9.2.2 EXTI部分寄存器 159
9.2.3 EXTI部分固件库函数 161
9.2.4 SYSCFG部分寄存器 164
9.2.5 SYSCFG部分固件库函数 165
9.3 实验步骤 166
本章任务 170
本章习题 170
第10章 实验9——七段数码管显示 171
10.1 实验内容 171
10.2 实验原理 171
10.2.1 七段数码管 171
10.2.2 74HC595驱动芯片 173
10.2.3 七段数码管显示模块电路原理图 174
10.2.4 七段数码管显示原理 175
10.3 实验步骤 177
本章任务 185
本章习题 185
第11章 实验10——OLED显示 186
11.1 实验内容 186
11.2 实验原理 186
11.2.1 OLED显示模块 186
11.2.2 SSD1306的显存 187
11.2.3 SSD1306常用命令 189
11.2.4 字模选项 189
11.2.5 ASCII码表与取模工具 190
11.2.6 STM32的GRAM与SSD1306的GRAM 190
11.2.7 OLED显示模块显示流程 191
11.3 实验步骤 191
本章任务 203
本章习题 203
第12章 实验11——读写内部Flash 204
12.1 实验内容 204
12.2 实验原理 204
12.2.1 STM32内部Flash和SRAM 204
12.2.2 STM32内部Flash简介 204
12.2.3 Flash编程过程 206
12.2.4 Flash扇区擦除过程 206
12.3 实验步骤 207
本章任务 215
本章习题 215
第13章 实验12——DAC 216
13.1 实验内容 216
13.2 实验原理 216
13.2.1 DAC功能框图 216
13.2.2 DMA功能框图 219
13.2.3 DAC实验逻辑图分析 221
13.2.4 PCT通信协议 222
13.2.5 PCT通信协议应用 227
13.2.6 DAC部分寄存器 230
13.2.7 DAC部分固件库函数 233
13.2.8 DMA部分寄存器 236
13.2.9 DMA部分固件库函数 242
13.3 实验步骤 248
本章任务 260
本章习题 260
第14章 实验13——ADC 261
14.1 实验内容 261
14.2 实验原理 261
14.2.1 ADC功能框图 261
14.2.2 逻辑框图分析 264
14.2.3 ADC缓冲区 264
14.2.4 ADC部分寄存器 264
14.2.5 ADC部分固件库函数 270
14.3 实验步骤 274
本章任务 284
本章习题 284
第15章 实验14——体温测量与显示 285
15.1 实验内容 285
15.2 实验原理 286
15.2.1 体温数据包的PCT通信协议 286
15.2.2 基于DMA的UART模块函数 286
15.2.3 UART4与UART7数据传输流程 288
15.2.4 解包结果处理流程 289
15.2.5 七段数码管显示体温参数 289
15.3 实验步骤 290
本章任务 296
本章习题 296
第16章 实验15——呼吸监测与显示 297
16.1 实验内容 297
16.2 实验原理 298
16.2.1 呼吸数据包的PCT通信协议 298
16.2.2 解包结果处理流程 298
16.2.3 七段数码管显示呼吸数据流程 298
16.3 实验步骤 299
本章任务 304
本章习题 305
第17章 实验16——心电监测与显示 306
17.1 实验内容 306
17.2 实验原理 307
17.2.1 心电数据包的PCT通信协议 307
17.2.2 解包结果处理流程 308
17.2.3 OLED显示心电参数流程 308
17.3 实验步骤 309
本章任务 315
本章习题 315
第18章 实验17——血氧监测与显示 316
18.1 实验内容 316
18.2 实验原理 317
18.2.1 血氧数据包的PCT通信协议 317
18.2.2 解包结果处理流程 318
18.2.3 OLED显示血氧参数流程 318
18.3 实验步骤 319
本章任务 325
本章习题 325
第19章 实验18——血压测量与显示 326
19.1 实验内容 326
19.2 实验原理 327
19.2.1 血压数据包的PCT通信协议 327
19.2.2 血压命令发送 329
19.2.3 解包结果处理流程 329
19.2.4 OLED显示血压参数流程 329
19.3 实验步骤 330
本章任务 339
本章习题 340
附录A 人体生理参数监测系统使用说明 341
附录B PCT通信协议应用在人体生理参数监测系统说明 343
B.1 模块ID定义 343
B.2 从机发送给主机数据包类型ID 343
B.3 主机发送给从机命令包类型ID 350
附录C ASCII码表 360
参考文献 361