這是一本從原理和實(shí)踐兩個層面解讀GD32 MCU原理及標(biāo)準(zhǔn)庫開發(fā)的專業(yè)技術(shù)書。本書內(nèi)容均來自兆易創(chuàng)新內(nèi)部及周邊一線使用的企業(yè),主要面向初中及人員,解決其在實(shí)際工作中入門、使用的問題。
全書共分為7章,首先分析了MCU的基本情況,然后聚焦于GD32,分別介紹了其產(chǎn)品形態(tài)、選型技巧,然后從原理和實(shí)踐兩個維度對入門知識、內(nèi)核、存儲器、電源管理、時鐘系統(tǒng)、基礎(chǔ)外設(shè)、模擬外設(shè)、通信外設(shè)進(jìn)行深入解讀。
序
贊譽(yù)
前言
第1章 GD32 MCU概述1
1.1 GigaDevice公司概述1
1.2 GD32 MCU發(fā)展歷程及典型應(yīng)用2
1.2.1 GD32 MCU發(fā)展歷程2
1.2.2 GD32 MCU典型應(yīng)用6
1.3 GD32 MCU產(chǎn)品家族介紹8
1.4 GD32 MCU應(yīng)用選型9
1.4.1 GD32 MCU型號解碼9
1.4.2 GD32 MCU選型方法簡介11
1.5 本章小結(jié)14
第2章 GD32 MCU快速入門與開發(fā)
平臺搭建15
2.1 開發(fā)資料和軟件開發(fā)平臺15
2.1.1 Keil MDK開發(fā)環(huán)境介紹16
2.1.2 IAR開發(fā)環(huán)境介紹28
2.2 硬件開發(fā)平臺介紹34
2.2.1 BluePill開發(fā)板硬件平臺介紹34
2.2.2 GD32官方開發(fā)板介紹40
2.3 燒錄調(diào)試工具介紹41
2.3.1 GD-Link燒錄調(diào)試41
2.3.2 JLink燒錄調(diào)試48
2.4 GD32 MCU固件庫架構(gòu)及
使用介紹53
2.5 本章小結(jié)55
第3章 GD32 MCU系統(tǒng)架構(gòu)、內(nèi)核及存儲器系統(tǒng)56
3.1 GD32 MCU系統(tǒng)架構(gòu)介紹56
3.2 GD32 MCU內(nèi)核介紹58
3.3 GD32 MCU NVIC與中斷系統(tǒng)61
3.3.1 NVIC概述61
3.3.2 中斷響應(yīng)序列62
3.3.3 中斷配置62
3.4 GD32 MCU存儲器系統(tǒng)64
3.4.1 存儲器架構(gòu)64
3.4.2 Flash操作說明69
3.5 本章小結(jié)73
第4章 GD32 MCU電源管理系統(tǒng)、復(fù)位和時鐘系統(tǒng)74
4.1 GD32電源管理系統(tǒng)74
4.1.1 PMU簡介74
4.1.2 固件庫中PMU相關(guān)的
主要API78
4.1.3 實(shí)例:深度睡眠進(jìn)入和退出79
4.1.4 實(shí)例:待機(jī)模式進(jìn)入和退出82
4.1.5 實(shí)例:低壓檢測器的使用83
4.2 GD32復(fù)位和時鐘系統(tǒng)84
4.2.1 GD32中的復(fù)位和時鐘簡介85
4.2.2 固件庫中RCU相關(guān)的
主要API87
4.2.3 實(shí)例:時鐘設(shè)置88
4.2.4 實(shí)例:PA8輸出時鐘91
4.3 本章小結(jié)94
第5章 GD32 MCU基礎(chǔ)外設(shè)95
5.1 通用IO端口95
5.1.1 GD32的GPIO簡介96
5.1.2 固件庫中GPIO相關(guān)的
主要API97
5.1.3 實(shí)例:用GPIO點(diǎn)亮流水燈99
5.1.4 實(shí)例:以查詢方式實(shí)現(xiàn)
按鍵輸入101
5.2 外部中斷105
5.2.1 GD32的EXTI簡介105
5.2.2 固件庫中EXTI相關(guān)的
主要API106
5.2.3 實(shí)例:以中斷方式實(shí)現(xiàn)
按鍵輸入107
5.3 直接內(nèi)存存取109
5.3.1 GD32的DMA簡介110
5.3.2 固件庫中與DMA相關(guān)的
主要API110
5.3.3 實(shí)例:使用DMA在SRAM中
搬運(yùn)數(shù)據(jù)112
5.3.4 實(shí)例:使用DMA從Flash到SRAM搬運(yùn)數(shù)據(jù)116
5.3.5 實(shí)例:使用DMA操作
GPIO118
5.4 定時器123
5.4.1 GD32定時器的分類和介紹124
5.4.2 固件庫中與定時器相關(guān)的
主要API127
5.4.3 實(shí)例:使用定時器軟件延時
測量運(yùn)行時間128
5.4.4 實(shí)例:使用定時器輸出
PWM131
5.4.5 使用定時器捕獲功能測量
外部信號頻率134
5.4.6 定時器級聯(lián)實(shí)驗(yàn)138
5.5 實(shí)時時鐘144
5.5.1 GD32的RTC簡介144
5.5.2 固件庫中RTC相關(guān)的
主要API145
5.5.3 實(shí)例:RTC日歷146
5.5.4 實(shí)例:RTC鬧鐘喚醒
DeepSleep154
5.6 看門狗定時器158
5.6.1 GD32的看門狗定時器簡介158
5.6.2 固件庫中看門狗相關(guān)的
主要API161
5.6.3 實(shí)例:獨(dú)立看門狗定時器
設(shè)置162
5.6.4 實(shí)例:窗口看門狗定時器
設(shè)置164
5.7 本章小結(jié)167
第6章 GD32 MCU模擬外設(shè)168
6.1 ADC168
6.1.1 GD32的ADC簡介168
6.1.2 固件庫中與ADC相關(guān)的
主要API170
6.1.3 實(shí)現(xiàn)ADC單通道電壓采集171
6.1.4 實(shí)例:內(nèi)部參考電壓的用法176
6.1.5 實(shí)現(xiàn)ADC+DMA多通道
電壓采集180
6.1.6 實(shí)例:雙ADC同步觸發(fā)185
6.2 DAC191
6.2.1 GD32的DAC簡介191
6.2.2 固件庫中與DAC相關(guān)的
主要API192
6.2.3 使用DAC輸出固定電壓193
6.2.4 使用DAC實(shí)現(xiàn)一個正弦
信號發(fā)生器194
6.3 本章小結(jié)198
第7章 GD32 MCU基礎(chǔ)通信
外設(shè)200
7.1 通用同步異步收發(fā)器200
7.1.1 異步串口簡介200
7.1.2 GD32的USART模塊介紹202
7.1.3 固件庫中與USART相關(guān)的
主要API202
7.1.4 實(shí)例:printf函數(shù)重定向204
7.1.5 實(shí)例:半雙工串口收發(fā)206
7.1.6 實(shí)例:DMA串口收發(fā)210
7.1.7 實(shí)例:串口接收超時214
7.1.8 實(shí)例:以中斷方式進(jìn)行串口
收發(fā)217
7.1.9 實(shí)例:串口的同步模式219
7.1.10 使用串口實(shí)現(xiàn)一個命令
解釋器224
7.2 內(nèi)部集成電路總線接口230
7.2.1 I2C接口簡介230
7.2.2 GD32 I2C的主要功能231
7.2.3 I2C接口的主要API232
7.2.4 實(shí)例:I2C主從通信234
7.2.5 實(shí)例:I2C接口讀寫
EEPROM247
7.3 同步串行外設(shè)接口255
7.3.1 SPI簡介255
7.3.2 GD32 SPI的主要功能257
7.3.3 SPI的主要API257
7.3.4 實(shí)例:SPI以查詢方式進(jìn)行
全雙工通信259
7.3.5 實(shí)例:SPI使用DMA進(jìn)行
全雙工通信265
7.3.6 實(shí)例:SPI半雙工主從通信273
7.3.7 實(shí)例:SPI讀寫GD25系列
SPI Flash278
7.4 本章小結(jié)287
第8章 GD32 MCU高級通信
外設(shè)289
8.1 CAN總線289
8.1.1 CAN總線基礎(chǔ)知識289
8.1.2 GD32的CAN接口
主要功能294
8.1.3 CAN接口的主要API295
8.1.4 實(shí)例:回環(huán)模式收發(fā)296
8.1.5 發(fā)送特定ID的數(shù)據(jù)幀實(shí)驗(yàn)303
8.1.6 CAN數(shù)據(jù)幀的接收實(shí)驗(yàn)309
8.1.7 使用過濾器接收特定的
數(shù)據(jù)幀312
8.2 USBD317
8.2.1 USB通信基礎(chǔ)知識317
8.2.2 USBD設(shè)備固件庫架構(gòu)344
8.2.3 USBD設(shè)備固件庫分層文件及
庫函數(shù)說明346
8.2.4 實(shí)例:USBD模擬鍵盤
應(yīng)用351
8.2.5 實(shí)例:USBD虛擬串口
應(yīng)用373
8.2.6 實(shí)例:USBD模擬U盤
應(yīng)用382
8.3 本章小結(jié)387