第1章 GD32開發(fā)平臺和工具 1
1.1 為什么選擇GD32 1
1.2 GD32F4系列芯片 1
1.3 GD32F4藍莓派開發(fā)板電路 3
1.3.1 通信 下載模塊電路 5
1.3.2 GD Link調試下載模塊電路 5
1.3.3 電源轉換電路 6
1.4 GD32F4藍莓派開發(fā)板可開展的部分實驗 7
1.5 GD32微控制器開發(fā)工具的安裝與配置 7
1.5.1 Keil 5.30的安裝 8
1.5.2 Keil 5.30的設置 11
本章任務 13
本章習題 13
第2章 實驗1 基準工程實驗 14
2.1 實驗內容 14
2.2 實驗原理 14
2.2.1 寄存器與固件庫 14
2.2.2 Keil編輯和編譯及程序下載過程 18
2.2.3 GD32工程模塊名稱及說明 19
2.2.4 相關參考資料 20
2.3 實驗步驟 20
本章任務 33
本章習題 33
第3章 實驗2 串口電子鐘 34
3.1 實驗內容 34
3.2 實驗原理 34
3.2.1 RunClock模塊函數 34
3.2.2 函數調用框架 36
3.2.3 Proc2msTask與Proc1SecTask 37
3.2.4 串口電子鐘實驗程序架構 37
3.3 實驗代碼解析
3.3.1 RunClock文件對 39
3.3.2 Main.c文件 43
3.3.3 實驗結果 45
本章任務 45
本章習題 46
第4章 實驗3 GPIO與流水燈 47
4.1 實驗內容 47
4.1 實驗原理 47
4.2.1 LED電路原理圖 47
4.2.2 GD32F4xx系列微控制器的系統(tǒng)架構與存儲器映射 47
4.2.3 GPIO功能框圖 53
4.2.4 GPIO與流水燈實驗程序架構 55
4.3 實驗代碼解析 56
4.3.1 LED文件對 56
4.3.2 Main.c文件 58
4.3.3 實驗結果 59
本章任務 59
本章習題 60
第5章 實驗4 GPIO與獨立按鍵輸入 61
5.1 實驗內容 61
5.2 實驗原理 61
5.2.1 獨立按鍵電路原理圖 61
5.2.2 GPIO功能框圖 62
5.2.3 按鍵去抖原理 63
5.2.4 GPIO與獨立按鍵輸入實驗程序架構 64
5.3 實驗代碼解析 66
5.3.1 KeyOne文件對 _______66
5.3.2 ProcKeyOne文件對 70
5.3.3 Main.c文件 71
5.3.4 實驗結果 72
本章任務 73
本章習題 73
第6章 實驗5 串口通信 74
6.1 實驗內容 74
6.2 實驗原理 74
6.2.1 串口通信協(xié)議 74
6.2.2 串口電路原理圖 77
6.2.3 串口功能框圖 78
6.2.4 異常和中斷 81
6.2.5 NVIC中斷控制器 86
6.2.6 NVIC部分寄存器 86
6.2.7 NVIC部分固件庫函數 91
6.2.8 串口模塊驅動設計 92
6.2.9 串口通信實驗程序架構 97
6.3 實驗代碼解析 98
6.3.1 UART0文件對 98
6.3.2 Main.c文件 105
6.3.3 實驗結果 106
本章任務 107
本章習題 108
第7章 實驗6 定時器中斷 109
7.1 實驗內容 109
7.2 實驗原理 109
7.2.1 通用定時器L0結構框圖 109
7.2.2 定時器中斷實驗程序架構 113
7.3 實驗代碼解析 114
7.3.1 Timer文件對 114
7.3.2 Main.c文件 119
7.3.3 實驗結果 120
本章任務 121
本章習題 121
第8章 實驗7 SysTick 122
8.1 實驗內容 _______122
8.2 實驗原理 122
8.2.1 SysTick功能框圖 122
8.2.2 SysTick實驗流程圖分析 123
8.2.3 SysTick實驗程序架構 124
8.3 實驗代碼解析 126
8.3.1 SysTick文件對 126
8.3.2 Main.c文件 128
8.3.3 實驗結果 129
本章任務 129
本章習題 130
第9章 實驗8 RCU 131
9.1 實驗內容 131
9.2 實驗原理 131
9.2.1 RCU功能框圖 131
9.2.2 RCU實驗程序架構 134
9.3 實驗代碼解析 135
9.3.1 RCU文件對 135
9.3.2 Main.c文件 138
9.3.3 實驗結果 139
本章任務 139
本章習題 139
第10章 實驗9 外部中斷 140
10.1 實驗內容 140
10.2 實驗原理 140
10.2.1 EXTI功能框圖 140
10.2.2 外部中斷實驗程序架構 142
10.3 實驗代碼解析 144
10.3.1 EXTI文件對 144
10.3.2 Main.c文件 147
10.3.3 實驗結果 148
本章任務 148
本章習題 149
第11章 實驗10 OLED顯示 150
11.1 實驗內容 150
11.2 實驗原理 150
11.2.1 OLED顯示模塊 150
11.2.2 SSD1306的顯存
11.3.3 實驗結果 171
本章任務 171
本章習題 171
第12章 實驗11 TIMER與PWM 輸出 173
12.1 實驗內容 173
12.2 實驗原理 173
12.2.1 PWM 輸出實驗流程圖分析 173
12.2.2 TIMER與PWM 輸出實驗程序架構 175
12.3 實驗代碼解析 176
12.3.1 PWM 文件對 176
12.3.2 ProcKeyOne.c文件 180
12.3.3 Main.c文件 180
12.3.4 實驗結果 181
本章任務 182
本章習題 182
第13章 實驗12 TIMER與輸入捕獲 183
13.1 實驗內容 183
13.2 實驗原理 183
13.2.1 輸入捕獲實驗流程圖分析 183
13.2.2 TIMER與輸入捕獲實驗程序架構 185
13.3 實驗代碼解析 187
13.3.1 Capture文件對 187
13.3.2 Main.c文件 192
13.3.3 實驗結果 193
本章任務 193
本章習題 193
第14章 實驗13 DAC
14.3.1 Wave文件對 211
14.3.2 DAC文件對 212
14.3.3 ProcHostCmd文件對 217
14.3.4 Main.c文件 219
14.3.5 實驗結果 221
本章任務 223
本章習題 223
第15章 實驗14 ADC 224
15.1 實驗內容 224
15.2 實驗原理 224
15.2.1 ADC功能框圖 224
15.2.2 ADC時鐘及其轉換時間 226
15.2.3 ADC實驗邏輯框圖分析 227
15.2.4 ADC緩沖區(qū) 227
15.2.5 ADC實驗程序架構 228
15.3 實驗代碼解析 229
15.3.1 ADC文件對 229
15.3.2 SendDataToHost文件對 235
15.3.3 ProcHostCmd.c文件 238
15.3.4 Main.c文件 239
15.3.5 實驗結果 240
本章任務 241
本章習題 241
附錄 ASCⅡ碼表 242
參考文獻 243