GD32F4蓝莓派开发板(主控芯片为GD32F470IIH6)配套有2本教程,分别是《GD32F4开发基础》和《GD32F4开发进阶》。本书是进阶教程,通过16个实验分别介绍GD32F4蓝莓开发板的LCD显示、触摸屏、内部温度与外部温湿度传感器、外部SDRAM、外部NAND Flash、内存管理、SD卡、FatFs文件系统、中文显示、CAN通信、以太网通信、USB通信、录音播放、摄像头、照相机以及IAP在线升级的原理与应用。作为拓展,另有5个实验分别介绍RS232通信、RS485通信、呼吸灯、电容触摸按键和读/写内部Flash,可参见本书配套资料包。全书程序代码的编写规范均遵循《C语言软件设计规范(LY STD0012019)》。各实验采用模块化设计,以便应用于实际项目和产品中。
本书配套资料包含GD32F4蓝莓派开发板原理图、例程、软件包、PPT 等,读者可免费获取。
第1章 TLI与LCD显示实验 1
1.1 实验内容 1
1.2 实验原理 1
1.2.1 LCD显示模块 1
1.2.2 TLI功能框图 4
1.2.3 IPA功能框图 5
1.3 实验代码解析 7
1.3.1 TLILCD文件对 7
1.3.2 Main.c文件 30
1.3.3 实验结果 31
本章任务 31
本章习题 32
第2章 触摸屏实验 33
2.1 实验内容 33
2.2 实验原理 33
2.2.1 触摸屏分类 33
2.2.2 投射式触摸屏工作原理 33
2.2.3 GT1151Q芯片 34
2.2.4 GT1151Q常用寄存器 36
2.3 实验代码解析 38
2.3.1 GT1151Q文件对 38
2.3.2 Touch文件对 42
2.3.3 Canvas文件对 47
2.3.4 Main.c文件 51
2.3.5 实验结果 51
本章任务 52
本章习题 __________52
第3章 内部温度与外部温湿度监测实验 53
3.1 实验内容 53
3.2 实验原理 53
3.2.1 内部温度模块 53
3.2.2 温湿度传感器SHT20 54
3.2.3 SHT20传感器电路 54
3.2.4 SHT20通信 54
3.2.5 外部温湿度计算 55
3.3 实验代码解析 56
3.3.1 ADC文件对 56
3.3.2 InTemp文件对 58
3.3.3 SHT20文件对 59
3.3.4 TempHumidityTop文件对 61
3.3.5 Main.c文件 62
3.3.6 实验结果 63
本章任务 64
本章习题 64
第4章 读/写SDRAM 实验 65
4.1 实验内容 65
4.2 实验原理 65
4.2.1 存储器分类 65
4.2.2 MT48LC16M16A2P 6A IT:G芯片 66
4.2.3 SDRAM 芯片内部结构 67
4.2.4 SDRAM 控制指令 69
4.2.5 EXMC配置 70
4.3 实验代码解析 71
4.3.1 SDRAM 文件对 __________71
4.3.2 ReadwriteSDRAM 文件对 74
4.3.3 Main.c文件 78
4.3.4 实验结果 78
本章任务 80
本章习题 80
第5章 读/写NAND Flash实验 81
5.1 实验内容 81
5.2 实验原理 81
5.2.1 Flash简介 81
5.2.2 HY27UF081G2A芯片简介 82
5.2.3 ECC算法 83
5.2.4 FTL原理 85
5.2.5 HY27UF081G2A芯片通信方式 86
5.2.6 NAND Flash的读/写操作 87
2
GD32F4开发进阶
5.3 实验代码解析 87
5.3.1 FTL文件对 87
5.3.2 NandFlash文件对 99
5.3.3 ReadwriteNandFlash文件对 106
5.3.4 Main.c文件 110
5.3.5 实验结果 110
本章任务 111
本章习题 112
第6章 内存管理实验 113
6.1 实验内容 113
6.2 实验原理 113
6.2.1 分块式内存管理原理 113
6.2.2 内存分配与释放流程 __________115
6.3 实验代码解析 116
6.3.1 Malloc文件对 116
6.3.2 MallocTop文件对 124
6.3.3 Main.c文件 129
6.3.4 实验结果 129
本章任务 130
本章习题 130
第7章 读/写SD卡实验 131
7.1 实验内容 131
7.2 实验原理 131
7.2.1 SDIO模块 131
7.2.2 SDIO结构框图 131
7.2.3 SD卡结构框图 133
7.2.4 SDIO传输内容 134
7.2.5 SD卡状态信息 135
7.2.6 SD卡操作模式 136
7.2.7 SDIO总线协议 138
7.2.8 SDIO数据包格式 139
7.3 实验代码解析 140
7.3.1 SDCard.c文件 140
7.3.2 ReadWriteSDCard文件对 140
7.3.3 Main.c文件 148
7.3.4 实验结果 148
本章任务 149
本章习题 150
第8章 FatFs与读/写SD卡实验 151
8.1 实验内容 TJETQq151
8.2 实验原理 151
8.2.1 文件系统 151
8.2.2 FatFs文件系统 151
8.2.3 文件系统空间分布 152
8.2.4 FatFs文件系统移植步骤 153
8.2.5 文件系统操作函数 154
8.3 实验代码解析 158
8.3.1 ffconf.h文件 158
8.3.2 diskio.c文件 159
8.3.3 ReadBookByte文件对 163
8.3.4 FatFsTest文件对 167
8.3.5 ProcKeyOne.c文件 174
8.3.6 Main.c文件 174
8.3.7 实验结果 175
本章任务 176
本章习题 176
第9章 中文显示实验 177
9.1 实验内容 177
9.2 实验原理 177
9.2.1 字符编码 177
9.2.2 字模和字库的概念 178
9.2.3 LCD显示字符的流程 178
9.3 实验代码解析 179
9.3.1 FontLib文件对 179
9.3.2 TLILCD.c文件 186
9.3.3 FatFsTest.c文件 188
9.3.4 GUIPlatform.c文件 1 0 _____189
9.3.5 实验结果 189
本章任务 190
本章习题 190
第10章 CAN通信实验 191
10.1 实验内容 191
10.2 实验原理 191
10.2.1 CAN模块 191
10.2.2 CAN协议简介 192
10.2.3 GD32F4xx系列微控制器的CAN外设简介 197
10.2.4 CAN数据接收和数据发送路径 200
10.2.5 CAN部分固件库函数 201
10.3 实验代码解析 204
10.3.1 CAN文件对 204
10.3.2 Main.c文件 211
10.3.3 实验结果 212
本章任务 215
本章习题 215
第11章 以太网通信实验 216
11.1 实验内容 216
11.2 实验原理 216
11.2.1 以太网模块 216
11.2.2 网络协议简介 217
11.2.3 以太网外设ENET简介 219
11.2.4 LAN8720简介 222
11.2.5 LwIP简介 222
11.3 实验代码解析 223
11.3.1 LAN8720文件对 __________223
11.3.2 Main.c文件 225
11.3.3 实验结果 226
本章任务 229
本章习题 229
第12章 USB从机实验 230
12.1 实验内容 230
12.2 实验原理 230
12.2.1 USB模块 230
12.2.2 USB协议简介 230
12.2.3 USB拓扑结构 231
12.2.4 USB电气特性 231
12.2.5 USB描述符 232
12.2.6 HID协议 236
12.2.7 USB通信协议 237
12.2.8 USB枚举 241
12.2.9 USBFS模块简介 241
12.3 实验代码解析 241
12.3.1 standard_hid_core文件对 241
12.3.2 Keyboard文件对 247
12.3.3 KeyboardTop.c文件 251
12.3.4 Main.c文件 254
12.3.5 实验结果 254
本章任务 255
本章习题 255
第13章 录音播放实验 256
13.1 实验内容 256
13.2 实验原理 __________256
13.2.1 WM8978芯片 256
13.2.2 WM8978芯片数据传输 257
13.2.3 WM8978芯片寄存器 260
13.2.4 WAV文件格式 261
13.3 实验代码解析 263
13.3.1 WM8978文件对 263
13.3.2 WavPlayer文件对 266
13.3.3 Recorder文件对 272
13.3.4 AudioTop文件对 278
13.3.5 ProcKeyOne.c文件 281
13.3.6 Main.c文件 281
13.3.7 实验结果 281
本章任务 283
本章习题 283
第14章 摄像头实验 284
14.1 实验内容 284
14.2 实验原理 284
14.2.1 OV2640简介 284
14.2.2 摄像头接口电路原理图 285
14.2.3 摄像头功能模块 285
14.2.4 SCCB协议 287
14.2.5 图像的存储和读取 291
14.3 实验代码解析 294
14.3.1 DCI文件对 294
14.3.2 Camera文件对 300
14.3.3 SCCB文件对 305
14.3.4 Main.c文件 307
14.3.5 实验结果 308
本章任务 309
本章习题 309
第15章 照相机实验 310
15.1 实验内容 310
15.2 实验原理 310
15.2.1 图片格式简介 310
15.2.2 BMP编码简介 311
15.2.3 BMP图片的存储 313
15.3 实验代码解析 314
15.3.1 BMPEncoder文件对 314
15.3.2 Camera.c文件 321
15.3.3 实验结果 322
本章任务 322
本章习题 322
第16章 IAP在线升级应用实验 323
16.1 实验内容 323
16.2 实验原理 323
16.2.1 微控制器编程方式 323
16.2.2 程序执行流程 324
16.2.3 用户程序生成 326
16.3 实验代码解析 327
16.3.1 IAP文件对 327
16.3.2 Main.c文件 334
16.3.3 实验结果 335
本章任务 336
本章习题 336
参考文献 337