本書以STM32G4系列32位Flash MCU為例,以“藍橋杯”嵌入式設(shè)計與開發(fā)競賽實訓平臺CT117E-M4(V1.2)為硬件平臺,以“一切從簡單開始”為宗旨,介紹嵌入式系統(tǒng)的設(shè)計與開發(fā)。全書分為12章,第1章簡單介紹STM32 MCU和Cortex-M4,第2章介紹軟件開發(fā)環(huán)境與工具,第3~10章介紹GPIO、USART、SPI、I2C、ADC、TIM、NVIC和DMA的配置、HAL和LL庫函數(shù)及設(shè)計實例,第11章介紹擴展板模塊的設(shè)計,第12章對2020—2023年省賽和國賽試題進行設(shè)計和解析。書后附有STM32引腳功能、常用庫函數(shù)和實訓平臺簡介,還附有實驗指導。本書所有設(shè)計程序均為原創(chuàng),并經(jīng)過多輪實驗改進,內(nèi)容簡單易懂,特別適合初學者學習參考。本書可以作為嵌入式系統(tǒng)設(shè)計教材供電子信息類與電氣類各專業(yè)使用。
郭書軍,北方工業(yè)大學教授,長期講授本科生微機原理與接口技術(shù)、講授本科生和研究生嵌入式系統(tǒng)設(shè)計。《ARM Cortex-M3系統(tǒng)設(shè)計與實現(xiàn)—— STM32基礎(chǔ)篇》榮獲北方工業(yè)大學2020年高等教育優(yōu)秀教材獎,2021年高等教育教學成果二等獎。曾出版多部教材。
目 錄
第1章 STM32 MCU (1)
1.1 STM32 MCU結(jié)構(gòu) (1)
1.2 STM32 MCU存儲器映像 (2)
1.3 STM32 MCU系統(tǒng)時鐘樹 (4)
1.4 Cortex-M4簡介 (7)
第2章 軟件開發(fā)環(huán)境與工具 (10)
2.1 軟件開發(fā)包(SDK) (10)
2.2 MCU配置工具(STM32CubeMX) (11)
2.3 集成開發(fā)環(huán)境(IDE) (17)
第3章 通用并行接口GPIO (22)
3.1 GPIO簡介 (22)
3.2 GPIO配置 (23)
3.3 GPIO庫函數(shù) (25)
3.3.1 GPIO HAL庫函數(shù) (25)
3.3.2 GPIO LL庫函數(shù) (26)
3.4 GPIO設(shè)計實例 (28)
3.4.1 HAL庫函數(shù)軟件設(shè)計與實現(xiàn) (29)
3.4.2 LL庫函數(shù)軟件設(shè)計與實現(xiàn) (34)
3.5 GPIO設(shè)計調(diào)試 (38)
3.5.1 HAL庫函數(shù)軟件設(shè)計調(diào)試 (39)
3.5.2 LL庫函數(shù)軟件設(shè)計調(diào)試 (41)
3.6 LCD使用 (41)
3.6.1 LCD功能簡介 (42)
3.6.2 LCD軟件設(shè)計與實現(xiàn) (43)
第4章 通用同步/異步收發(fā)器接口USART (50)
4.1 USART簡介 (50)
4.2 USART配置 (52)
4.3 USART庫函數(shù) (55)
4.3.1 USART HAL庫函數(shù) (55)
4.3.2 USART LL庫函數(shù) (56)
4.4 USART設(shè)計實例 (58)
4.4.1 軟件設(shè)計與實現(xiàn) (59)
4.4.2 軟件調(diào)試與分析 (61)
第5章 串行設(shè)備接口SPI (64)
5.1 SPI簡介 (64)
5.2 SPI配置 (66)
5.3 SPI庫函數(shù) (68)
5.3.1 SPI HAL庫函數(shù) (69)
5.3.2 SPI LL庫函數(shù) (69)
5.4 SPI設(shè)計實例 (71)
5.4.1 軟件設(shè)計與實現(xiàn) (72)
5.4.2 軟件調(diào)試與分析 (76)
第6章 內(nèi)部集成電路總線接口I2C (78)
6.1 I2C簡介 (78)
6.2 I2C配置 (79)
6.3 I2C庫函數(shù) (81)
6.3.1 I2C HAL庫函數(shù) (81)
6.3.2 I2C LL庫函數(shù) (83)
6.4 I2C設(shè)計實例 (85)
6.4.1 軟件設(shè)計與實現(xiàn) (86)
6.4.2 軟件調(diào)試與分析 (88)
第7章 模數(shù)轉(zhuǎn)換器ADC (91)
7.1 ADC簡介 (91)
7.2 ADC配置 (94)
7.3 ADC庫函數(shù) (97)
7.3.1 ADC HAL庫函數(shù) (97)
7.3.2 ADC LL庫函數(shù) (99)
7.4 ADC設(shè)計實例 (102)
7.4.1 軟件設(shè)計與實現(xiàn) (103)
7.4.2 軟件調(diào)試與分析 (107)
第8章 定時器TIM (110)
8.1 TIM簡介 (110)
8.2 TIM配置 (112)
8.3 TIM庫函數(shù) (117)
8.3.1 TIM HAL庫函數(shù) (117)
8.3.2 TIM LL庫函數(shù) (120)
8.4 TIM設(shè)計實例 (122)
8.4.1 軟件設(shè)計與實現(xiàn) (122)
8.4.2 軟件調(diào)試與分析 (125)
第9章 嵌套向量中斷控制器NVIC (128)
9.1 NVIC簡介 (128)
9.2 外部中斷EXTI使用 (133)
9.3 USART中斷使用 (139)
第10章 直接存儲器存取DMA (143)
10.1 DMA簡介 (143)
10.2 USART DMA使用 (146)
第11章 擴展板模塊 (151)
11.1 數(shù)碼管 (151)
11.2 ADC按鍵 (153)
11.3 濕度傳感器DHT11 (156)
11.4 溫度傳感器DS18B20 (160)
第12章 往屆試題 (164)
12.1 第十一屆省賽試題1 (164)
12.1.1 系統(tǒng)設(shè)計 (166)
12.1.2 系統(tǒng)測試 (171)
12.1.3 客觀題解析 (172)
12.2 第十一屆省賽試題2 (173)
12.2.1 系統(tǒng)設(shè)計 (175)
12.2.2 系統(tǒng)測試 (181)
12.2.3 客觀題解析 (181)
12.3 第十二屆省賽試題1 (182)
12.3.1 系統(tǒng)設(shè)計 (184)
12.3.2 系統(tǒng)測試 (192)
12.3.3 客觀題解析 (192)
12.4 第十二屆省賽試題2 (193)
12.4.1 系統(tǒng)設(shè)計 (195)
12.4.2 系統(tǒng)測試 (200)
12.4.3 客觀題解析 (201)
12.5 第十三屆省賽試題1 (202)
12.5.1 系統(tǒng)設(shè)計 (204)
12.5.2 系統(tǒng)測試 (211)
12.5.3 客觀題解析 (211)
12.6 第十三屆省賽試題2 (212)
12.6.1 系統(tǒng)設(shè)計 (215)
12.6.2 系統(tǒng)測試 (222)
12.6.3 客觀題解析 (222)
12.7 第十四屆省賽試題 (224)
12.7.1 系統(tǒng)設(shè)計 (227)
12.7.2 系統(tǒng)測試 (236)
12.7.3 客觀題解析 (236)
12.8 第十四屆國賽試題 (237)
12.8.1 系統(tǒng)設(shè)計 (242)
12.8.2 系統(tǒng)測試 (253)
12.8.3 客觀題解析 (254)
附錄A STM32引腳功能 (257)
附錄B STM32常用庫函數(shù) (269)
附錄C 嵌入式競賽實訓平臺簡介 (276)
附錄D 嵌入式競賽擴展板簡介 (281)
附錄E ASCII碼表 (285)
附錄F C語言運算符 (286)
附錄G 實驗指導 (287)
參考文獻 (293)