GD32F4藍(lán)莓派開發(fā)板(主控芯片為GD32F470IIH6)配套有2本教程,分別是《GD32F4開發(fā)基礎(chǔ)》和《GD32F4開發(fā)進(jìn)階》。本書是進(jìn)階教程,通過16個實驗分別介紹GD32F4藍(lán)莓開發(fā)板的LCD顯示、觸摸屏、內(nèi)部溫度與外部溫濕度傳感器、外部SDRAM、外部NAND Flash、內(nèi)存管理、SD卡、FatFs文件系統(tǒng)、中文顯示、CAN通信、以太網(wǎng)通信、USB通信、錄音播放、攝像頭、照相機(jī)以及IAP在線升級的原理與應(yīng)用。作為拓展,另有5個實驗分別介紹RS232通信、RS485通信、呼吸燈、電容觸摸按鍵和讀/寫內(nèi)部Flash,可參見本書配套資料包。全書程序代碼的編寫規(guī)范均遵循《C語言軟件設(shè)計規(guī)范(LY STD0012019)》。各實驗采用模塊化設(shè)計,以便應(yīng)用于實際項目和產(chǎn)品中。
本書配套資料包含GD32F4藍(lán)莓派開發(fā)板原理圖、例程、軟件包、PPT 等,讀者可免費獲取。
第1章 TLI與LCD顯示實驗 1
1.1 實驗內(nèi)容 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 實驗結(jié)果 31
本章任務(wù) 31
本章習(xí)題 32
第2章 觸摸屏實驗 33
2.1 實驗內(nèi)容 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 實驗結(jié)果 51
本章任務(wù) 52
本章習(xí)題 __________52
第3章 內(nèi)部溫度與外部溫濕度監(jiān)測實驗 53
3.1 實驗內(nèi)容 53
3.2 實驗原理 53
3.2.1 內(nèi)部溫度模塊 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 實驗結(jié)果 63
本章任務(wù) 64
本章習(xí)題 64
第4章 讀/寫SDRAM 實驗 65
4.1 實驗內(nèi)容 65
4.2 實驗原理 65
4.2.1 存儲器分類 65
4.2.2 MT48LC16M16A2P 6A IT:G芯片 66
4.2.3 SDRAM 芯片內(nèi)部結(jié)構(gòu) 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 實驗結(jié)果 78
本章任務(wù) 80
本章習(xí)題 80
第5章 讀/寫NAND Flash實驗 81
5.1 實驗內(nèi)容 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開發(fā)進(jìn)階
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 實驗結(jié)果 110
本章任務(wù) 111
本章習(xí)題 112
第6章 內(nèi)存管理實驗 113
6.1 實驗內(nèi)容 113
6.2 實驗原理 113
6.2.1 分塊式內(nèi)存管理原理 113
6.2.2 內(nèi)存分配與釋放流程 __________115
6.3 實驗代碼解析 116
6.3.1 Malloc文件對 116
6.3.2 MallocTop文件對 124
6.3.3 Main.c文件 129
6.3.4 實驗結(jié)果 129
本章任務(wù) 130
本章習(xí)題 130
第7章 讀/寫SD卡實驗 131
7.1 實驗內(nèi)容 131
7.2 實驗原理 131
7.2.1 SDIO模塊 131
7.2.2 SDIO結(jié)構(gòu)框圖 131
7.2.3 SD卡結(jié)構(gòu)框圖 133
7.2.4 SDIO傳輸內(nèi)容 134
7.2.5 SD卡狀態(tài)信息 135
7.2.6 SD卡操作模式 136
7.2.7 SDIO總線協(xié)議 138
7.2.8 SDIO數(shù)據(jù)包格式 139
7.3 實驗代碼解析 140
7.3.1 SDCard.c文件 140
7.3.2 ReadWriteSDCard文件對 140
7.3.3 Main.c文件 148
7.3.4 實驗結(jié)果 148
本章任務(wù) 149
本章習(xí)題 150
第8章 FatFs與讀/寫SD卡實驗 151
8.1 實驗內(nèi)容 TJETQq151
8.2 實驗原理 151
8.2.1 文件系統(tǒng) 151
8.2.2 FatFs文件系統(tǒng) 151
8.2.3 文件系統(tǒng)空間分布 152
8.2.4 FatFs文件系統(tǒng)移植步驟 153
8.2.5 文件系統(tǒng)操作函數(shù) 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 實驗結(jié)果 175
本章任務(wù) 176
本章習(xí)題 176
第9章 中文顯示實驗 177
9.1 實驗內(nèi)容 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 實驗結(jié)果 189
本章任務(wù) 190
本章習(xí)題 190
第10章 CAN通信實驗 191
10.1 實驗內(nèi)容 191
10.2 實驗原理 191
10.2.1 CAN模塊 191
10.2.2 CAN協(xié)議簡介 192
10.2.3 GD32F4xx系列微控制器的CAN外設(shè)簡介 197
10.2.4 CAN數(shù)據(jù)接收和數(shù)據(jù)發(fā)送路徑 200
10.2.5 CAN部分固件庫函數(shù) 201
10.3 實驗代碼解析 204
10.3.1 CAN文件對 204
10.3.2 Main.c文件 211
10.3.3 實驗結(jié)果 212
本章任務(wù) 215
本章習(xí)題 215
第11章 以太網(wǎng)通信實驗 216
11.1 實驗內(nèi)容 216
11.2 實驗原理 216
11.2.1 以太網(wǎng)模塊 216
11.2.2 網(wǎng)絡(luò)協(xié)議簡介 217
11.2.3 以太網(wǎng)外設(shè)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 實驗結(jié)果 226
本章任務(wù) 229
本章習(xí)題 229
第12章 USB從機(jī)實驗 230
12.1 實驗內(nèi)容 230
12.2 實驗原理 230
12.2.1 USB模塊 230
12.2.2 USB協(xié)議簡介 230
12.2.3 USB拓?fù)浣Y(jié)構(gòu) 231
12.2.4 USB電氣特性 231
12.2.5 USB描述符 232
12.2.6 HID協(xié)議 236
12.2.7 USB通信協(xié)議 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 實驗結(jié)果 254
本章任務(wù) 255
本章習(xí)題 255
第13章 錄音播放實驗 256
13.1 實驗內(nèi)容 256
13.2 實驗原理 __________256
13.2.1 WM8978芯片 256
13.2.2 WM8978芯片數(shù)據(jù)傳輸 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 實驗結(jié)果 281
本章任務(wù) 283
本章習(xí)題 283
第14章 攝像頭實驗 284
14.1 實驗內(nèi)容 284
14.2 實驗原理 284
14.2.1 OV2640簡介 284
14.2.2 攝像頭接口電路原理圖 285
14.2.3 攝像頭功能模塊 285
14.2.4 SCCB協(xié)議 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 實驗結(jié)果 308
本章任務(wù) 309
本章習(xí)題 309
第15章 照相機(jī)實驗 310
15.1 實驗內(nèi)容 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 實驗結(jié)果 322
本章任務(wù) 322
本章習(xí)題 322
第16章 IAP在線升級應(yīng)用實驗 323
16.1 實驗內(nèi)容 323
16.2 實驗原理 323
16.2.1 微控制器編程方式 323
16.2.2 程序執(zhí)行流程 324
16.2.3 用戶程序生成 326
16.3 實驗代碼解析 327
16.3.1 IAP文件對 327
16.3.2 Main.c文件 334
16.3.3 實驗結(jié)果 335
本章任務(wù) 336
本章習(xí)題 336
參考文獻(xiàn) 337