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