STM32嵌入式系統(tǒng)基礎(chǔ)教程
本書首先以Cortex-M3內(nèi)核為例,介紹了STM32內(nèi)核架構(gòu)、存儲(chǔ)空間、中斷方式、指令集等ARM基礎(chǔ)內(nèi)容。隨后以微處理器STM32F103ZET6為例,結(jié)合配套的開發(fā)板硬件,有針對(duì)性地介紹STM32內(nèi)部資源、最小系統(tǒng)設(shè)計(jì),并從面上分析STM32芯片的引腳配置、常用片上資源、外圍接口電路設(shè)計(jì)等內(nèi)容,從而讓讀者對(duì)STM32系統(tǒng)有一個(gè)整體認(rèn)識(shí)。然后以“LED閃爍”典型例程為引導(dǎo),由淺入深,逐步講述了MDK開發(fā)環(huán)境、工程建立、程序編譯、庫(kù)函數(shù)、端口配置等軟硬件使用方法。結(jié)合CPU片上資源配置,采用具體實(shí)驗(yàn)例程,詳細(xì)介紹各個(gè)模塊的功能和使用方法。最后以兩輪自平衡小車控制系統(tǒng)設(shè)計(jì)為例,從實(shí)際工程開發(fā)的角度,介紹STM32應(yīng)用系統(tǒng)軟硬件的設(shè)計(jì)和實(shí)現(xiàn)。
更多科學(xué)出版社服務(wù),請(qǐng)掃碼獲取。
目錄
第1章 緒論 1
1.1 概述 1
1.2 典型STM32處理器簡(jiǎn)介 1
1.3 STM32系列MCU的優(yōu)點(diǎn) 2
1.4 STM32應(yīng)用領(lǐng)域 4
1.5 STM32學(xué)習(xí)方法 5
習(xí)題與思考題 5
第2章 STM32內(nèi)核架構(gòu) 6
2.1 概述 6
2.2 內(nèi)部功能結(jié)構(gòu) 7
2.2.1 總體結(jié)構(gòu)及功能模塊概述 7
2.2.2 總線結(jié)構(gòu) 8
2.2.3 流水線 9
2.3 寄存器組及CPU運(yùn)行模式 10
2.3.1 寄存器組 10
2.3.2 CPU運(yùn)行模式 12
2.4 存儲(chǔ)器和存儲(chǔ)空間 13
2.4.1 存儲(chǔ)空間映射 13
2.4.2 存儲(chǔ)器的各種訪問屬性 14
2.4.3 位帶技術(shù) 15
2.5 獨(dú)特的Thumb-2指令集 16
2.5.1 指令集開發(fā) 17
2.5.2 Thumb-2指令集體系結(jié)構(gòu) 17
2.6 中斷和異常 18
2.6.1 NVIC概覽 18
2.6.2 中斷的進(jìn)入與退出 18
2.6.3 中斷嵌套 19
2.6.4 尾鏈技術(shù) 19
2.6.5 晚到異常 19
2.7 調(diào)試支持 19
習(xí)題與思考題 20
第3章 STM32硬件基礎(chǔ) 21
3.1 概述 21
3.2 STM32芯片的引腳選型和配置 21
3.2.1 STM32芯片的命名規(guī)則和選型 21
3.2.2 STM32芯片的引腳配置 22
3.3 STM32最小應(yīng)用系統(tǒng)設(shè)計(jì) 25
3.3.1 電源電路設(shè)計(jì) 25
3.3.2 復(fù)位電路設(shè)計(jì) 27
3.3.3 時(shí)鐘電路設(shè)計(jì) 27
3.3.4 JTAG接口電路設(shè)計(jì) 28
3.3.5 外部存儲(chǔ)器擴(kuò)展 28
3.4 外設(shè)板硬件資源設(shè)計(jì) 30
3.4.1 串行通信接口 31
3.4.2 串行外設(shè)接口 32
3.4.3 USB接口 33
3.4.4 CAN總線控制器接口 33
3.4.5 鍵盤接口電路 34
3.4.6 數(shù)碼管顯示電路 35
3.4.7 LCD及其接口電路 36
3.4.8 步進(jìn)電機(jī) 38
3.4.9 SD卡接口 38
3.4.10 其他外設(shè)資源 39
習(xí)題與思考題 41
第4章 軟件開發(fā)基礎(chǔ) 42
4.1 概述 42
4.2 集成開發(fā)環(huán)境及其應(yīng)用 42
4.2.1 開發(fā)工具簡(jiǎn)介 42
4.2.2 固件庫(kù)簡(jiǎn)介 43
4.2.3 Keil MDK的安裝 44
4.2.4 J-LINK驅(qū)動(dòng)安裝 45
4.3 STM32應(yīng)用程序開發(fā)調(diào)試實(shí)例 46
4.3.1 STM32工程建立 46
4.3.2 LED閃爍代碼編寫及分析 56
4.3.3 配置J-LINK硬件調(diào)試 57
4.3.4 STM32程序下載 57
習(xí)題與思考題 59
第5章 庫(kù)函數(shù)及應(yīng)用 60
5.1 概述 60
5.2 庫(kù)函數(shù)簡(jiǎn)介 61
5.3 庫(kù)函數(shù)應(yīng)用實(shí)例 63
5.4 深入剖析LED閃爍例程 65
5.4.1 LED閃爍例程說明 65
5.4.2 LED閃爍例程分析與實(shí)驗(yàn) 66
5.4.3 程序分析 68
習(xí)題與思考題 73
第6章 基本模塊及其應(yīng)用開發(fā) 74
6.1 概述 74
6.2 通用數(shù)字輸入/輸出模塊 74
6.2.1 GPIO模塊結(jié)構(gòu)與工作原理 74
6.2.2 GPIO模塊寄存器說明 76
6.2.3 實(shí)驗(yàn)部分 79
6.3 NVIC與中斷控制 84
6.3.1 STM32中斷優(yōu)先級(jí) 85
6.3.2 中斷的使能與除能 86
6.3.3 中斷的掛起與清除 87
6.3.4 中斷建立全過程的演示 87
6.3.5 實(shí)驗(yàn)部分 87
6.4 顯示與鍵盤模塊 93
6.4.1 數(shù)碼管顯示 93
6.4.2 LCD顯示與鍵盤模塊 97
6.5 ADC模塊 102
6.5.1 ADC模塊結(jié)構(gòu)及其工作原理 104
6.5.2 ADC模塊寄存器 104
6.5.3 實(shí)驗(yàn)部分 109
6.6 DMA控制器模塊 116
6.6.1 DMA模塊結(jié)構(gòu)及其工作原理 116
6.6.2 DMA模塊寄存器 117
6.6.3 實(shí)驗(yàn)部分 119
習(xí)題與思考題 124
第7章 時(shí)間模塊及其應(yīng)用開發(fā) 125
7.1 概述 125
7.2 SysTick定時(shí)器 125
7.2.1 SysTick時(shí)鐘源結(jié)構(gòu)圖 126
7.2.2 SysTick定時(shí)器工作分析 126
7.2.3 SysTick控制寄存器 127
7.2.4 實(shí)驗(yàn)部分 128
7.3 RTC實(shí)時(shí)時(shí)鐘 131
7.3.1 RTC模塊結(jié)構(gòu) 132
7.3.2 UNIX時(shí)間戳 133
7.3.3 實(shí)驗(yàn)部分 133
7.4 通用定時(shí)器模塊 144
7.4.1 定時(shí)器模塊結(jié)構(gòu)與工作原理 144
7.4.2 定時(shí)器寄存器 145
7.4.3 實(shí)驗(yàn)部分 150
7.5 定時(shí)器脈沖寬度調(diào)制 153
7.5.1 定時(shí)器脈沖寬度調(diào)制輸出工作原理 153
7.5.2 定時(shí)器寄存器 153
7.5.3 實(shí)驗(yàn)部分 157
7.6 高級(jí)定時(shí)器 163
7.6.1 高級(jí)定時(shí)器死區(qū)原理 163
7.6.2 剎車和死區(qū)寄存器(TIMx_BDTR) 165
7.6.3 實(shí)驗(yàn)部分 166
習(xí)題與思考題 169
第8章 通信外設(shè)模塊及其應(yīng)用開發(fā) 170
8.1 概述 170
8.2 USART通信模塊 170
8.2.1 串行通信模塊的結(jié)構(gòu)與工作原理 170
8.2.2 串行通信模塊的寄存器 172
8.2.3 實(shí)驗(yàn)部分 174
8.3 SPI通信模塊 180
8.3.1 SPI模塊的結(jié)構(gòu)與工作原理 180
8.3.2 SPI模塊的寄存器 182
8.3.3 實(shí)驗(yàn)部分 187
8.4 I2C通信模塊 196
8.4.1 STM32的I2C模塊簡(jiǎn)介 196
8.4.2 I2C協(xié)議簡(jiǎn)介 196
8.4.3 I2C模塊的寄存器 198
8.4.4 實(shí)驗(yàn)部分 204
8.5 局域網(wǎng)控制器 212
8.5.1 CAN協(xié)議簡(jiǎn)介 212
8.5.2 STM32的CAN特性及架構(gòu) 215
8.5.3 實(shí)驗(yàn)部分 216
8.6 可變靜態(tài)存儲(chǔ)控制器 230
8.6.1 FSMC模塊的結(jié)構(gòu)與工作原理 230
8.6.2 FSMC的寄存器 232
8.6.3 實(shí)驗(yàn)部分 235
習(xí)題與思考題 241
第9章 ARM在自平衡小車中的應(yīng)用 242
9.1 兩輪自平衡小車控制系統(tǒng) 242
9.1.1 控制原理 242
9.1.2 控制系統(tǒng)組成結(jié)構(gòu) 243
9.2 兩輪自平衡小車控制系統(tǒng)硬件設(shè)計(jì) 244
9.2.1 控制系統(tǒng)硬件結(jié)構(gòu) 244
9.2.2 控制系統(tǒng)硬件原理 245
9.2.3 引腳配置說明 256
9.3 兩輪自平衡小車控制系統(tǒng)軟件設(shè)計(jì) 257
9.3.1 軟件總體設(shè)計(jì) 257
9.3.2 部分模塊軟件設(shè)計(jì) 258
9.3.3 姿態(tài)融合算法軟件設(shè)計(jì) 263
習(xí)題與思考題 267
參考文獻(xiàn) 268