嵌入式微控制器原理及設計——基於STM32及Proteus仿真開發(第2版)

畢盛 等

  • 出版商: 電子工業
  • 出版日期: 2026-05-01
  • 定價: $359
  • 售價: $358
  • 語言: 簡體中文
  • 頁數: 264
  • ISBN: 7121525593
  • ISBN-13: 9787121525599
  • 相關分類: STM32
  • 下單後立即進貨 (約4週~6週)

商品描述

本書以STM32F103系列微控制器為硬件平臺,以Proteus仿真軟件為開發環境,系統介紹嵌入式系統原理、接口技術及物聯網操作系統應用。主要內容包括:嵌入式系統基本概念、ARM Cortex-M3體系結構、硬件最小系統、C語言編程與STM32固件庫(STD庫、HAL庫、LL庫)以及基於MDK和VSCode的開發環境搭建。本書詳細闡述核心外設原理與應用,涵蓋GPIO、中斷、串行通信(USART、SPI、I2C、RS-485)、定時器、ADC、DMA、CAN及USB等常用外設。嵌入式操作系統以FreeRTOS為核心,剖析其實時內核的任務管理、同步與通信機制(互斥量、信號量、事件標誌組、隊列)、中斷處理及內存管理,並引入CMSIS-RTOS V2標準接口。最後通過溫濕度自動檢測與報警系統綜合實例,完整展示嵌入式項目開發流程。本書內容由淺入深,理論與實踐結合,各章均配有基於Proteus的仿真實例和基於HAL庫的代碼示例,讀者可通過仿真環境直觀理解硬件原理,快速上手嵌入式項目開發。本書可作為高等院校電子信息工程、自動化、計算機科學與技術及電氣工程等專業的教材或參考書,也可供相關工程技術人員參考。

目錄大綱

第1章 嵌入式系統與微控制器 1
1.1 嵌入式系統相關概念 1
1.1.1 什麼是嵌入式系統 1
1.1.2 嵌入式系統的特點 1
1.1.3 嵌入式系統主要硬件組成 1
1.1.4 嵌入式芯片類型 3
1.2 微控制器 4
1.2.1 微控制器的特點 4
1.2.2 微控制器芯片型號及發展歷史 4
1.2.3 ARM微控制器介紹 6
1.2.4 STM32系列微控制器 8
1.3 嵌入式系統開發 8
1.3.1 方案設計及芯片選型 8
1.3.2 嵌入式系統硬件設計 9
1.3.3 嵌入式系統軟件開發 10
1.3.4 嵌入式代碼編譯 11
1.3.5 嵌入式代碼下載及調試 12
1.4 微控制器芯片的發展趨勢 12
習題1 13
第2章 微控制器體系結構及匯編語言 15
2.1 Cortex-M3體系架構 15
2.1.1 Cortex-M3總體架構 15
2.1.2 Cortex-M3總線 16
2.1.3 Cortex-M3寄存器 17
2.1.4 Cortex-M3操作模式 19
2.1.5 Cortex-M3存儲器映射 19
2.1.6 流水線 20
2.1.7 異常和中斷 20
2.1.8 存儲器保護單元(MPU) 21
2.2 匯編指令尋址方式 21
2.3 ARM指令集 22
2.3.1 指令基本形式 22
2.3.2 ARM指令集條件碼 23
2.3.3 ARM指令種類 24
2.4 Thumb指令集 29
習題2 30
第3章 微控制器硬件系統 32
3.1 微控制器概述 32
3.1.1 STM32F103內部結構 32
3.1.2 STM32F103常用接口 35
3.1.3 STM32F103系列芯片簡介 36
3.2 微控制器基本電路 37
3.2.1 電源電路 37
3.2.2 復位電路 38
3.2.3 時鐘源 39
3.2.4 時鐘管理單元 40
3.2.5 下載電路 42
3.2.6 啟動配置電路 43
3.3 微控制器低功耗模式 44
習題3 46
第4章 微控制器軟件開發 48
4.1 微控制器開發語言 48
4.1.1 開發語言介紹 48
4.1.2 嵌入式C語言 49
4.2 微控制器開發庫函數 54
4.2.1 STM32開發庫函數介紹 54
4.2.2 STM32 STD庫 56
4.2.3 STM32 HAL庫和LL庫 57
4.3 微控制器開發環境 59
4.3.1 MDK開發環境 59
4.3.2 STM32CubeMX軟件 60
4.3.3 基於Visual Studio Code(VSCode)的開發環境 61
4.4 微控制器虛擬仿真環境 63
4.5 微控制器程序調試和下載 64
4.6 STM32微控制器啟動程序 66
習題4 67
第5章 GPIO 68
5.1 GPIO結構及特點 68
5.1.1 GPIO功能模式 68
5.1.2 GPIO特點及操作 69
5.1.3 GPIO開發實例 70
5.2 GPIO寄存器開發方式 71
5.2.1 GPIO寄存器說明 71
5.2.2 GPIO寄存器實現應用實例 71
5.3 GPIO STD庫開發方式 73
5.3.1 GPIO STD庫函數說明 73
5.3.2 GPIO STD庫應用實例 75
5.4 GPIO HAL庫開發方式 77
5.4.1 GPIO HAL庫函數說明 77
5.4.2 GPIO HAL庫應用實例 79
5.5 GPIO LL庫開發方式 82
5.5.1 GPIO LL庫函數說明 82
5.5.2 GPIO LL庫應用實例 85
5.6 GPIO應用開發實例 86
5.6.1 數碼管顯示實例 86
5.6.2 行列式鍵盤掃描實例 89
習題5 92
第6章 中斷 93
6.1 STM32中斷簡介 93
6.2 嵌套向量中斷控制器 95
6.2.1 NVIC寄存器 95
6.2.2 系統控制寄存器(SCB) 95
6.2.3 中斷和異常處理 96
6.2.4 STM32中斷優先級 97
6.3 EXTI外部中斷 98
6.3.1 EXTI硬件結構 98
6.3.2 EXTI中斷操作 99
6.4 EXTI中斷應用實例 100
習題6 103
第7章 串行通信 105
7.1 串行通信簡介 105
7.1.1 串行通信基礎知識 105
7.1.2 微控制器常見的串行通信方式 106
7.2 STM32 USART接口 107
7.2.1 USART硬件引腳 107
7.2.2 USART主要寄存器及中斷請求 108
7.2.3 USART異步通信 108
7.2.4 USART其他功能模式 109
7.3 USART串行通信實現 111
7.3.1 串行數據發送和接收 111
7.3.2 USART數據發送和接收應用實例 112
7.3.3 RS-232接口 116
7.3.4 printf串口終端實現 118
7.3.5 RS-485接口 118
7.4 基於串口的無線通信 122
7.4.1 移動通信 122
7.4.2 藍牙串口通信 122
7.4.3 串口無線網絡(Wi-Fi) 123
7.4.4 ZigBee通信 123
7.4.5 星閃通信 123
7.5 SPI通信 124
7.5.1 STM32 SPI接口 124
7.5.2 SPI接口應用實例 126
習題7 128
第8章 定時器 130
8.1 定時器概述 130
8.1.1 通用定時器 131
8.1.2 高級定時器 131
8.1.3 高級/通用定時器接口 131
8.1.4 定時器引腳和寄存器 134
8.1.5 定時器時鐘源 135
8.1.6 定時器計數模式 135
8.2 定時器操作 136
8.2.1 定時功能及實例 136
8.2.2 計數功能及實例 139
8.2.3 捕獲功能及實例 141
8.2.4 輸出PWM模式及實例 143
8.2.5 其他功能模式 146
8.3 系統滴答定時器(SysTick) 147
8.3.1 SysTick工作分析及配置 148
8.3.2 SysTick功能實現 148
8.4 看門狗定時器(WDT) 150
8.4.1 獨立看門狗 150
8.4.2 窗口看門狗 151
8.4.3 獨立看門狗與窗口看門狗的區別 153
8.5 實時時鐘(RTC) 153
習題8 157
第9章 ADC 159
9.1 ADC概述 159
9.1.1 STM32的ADC功能 159
9.1.2 STM32的ADC結構 159
9.1.3 STM32的ADC引腳 161
9.1.4 STM32的ADC操作 162
9.1.5 STM32的ADC主要寄存器 166
9.2 ADC應用實例 167
9.2.1 實例主要庫函數說明 167
9.2.2 ADC查詢和中斷實例 168
習題9 170
第10章 DMA 171
10.1 DMA概述 171
10.1.1 STM32的DMA特性 171
10.1.2 STM32的DMA主要寄存器 173
10.2 DMA應用實例 173
10.2.1 ADC數據采集DMA方式 173
10.2.2 串口發送DMA方式 175
習題10 176
第11章 其他接口 177
11.1 I2C總線 177
11.1.1 I2C總線介紹 177
11.1.2 STM32的I2C總線 178
11.1.3 I2C總線應用實例 180
11.2 CAN總線 184
11.2.1 CAN總線介紹 184
11.2.2 STM32的CAN總線 185
11.3 USB 186
11.3.1 USB簡介 186
11.3.2 STM32的USB接口 186
習題11 187
第12章 嵌入式操作系統 188
12.1 嵌入式操作系統概述 188
12.1.1 嵌入式操作系統的分類與發展現狀 188
12.1.2 傳統小型嵌入式操作系統 189
12.1.3 嵌入式小型物聯網操作系統 190
12.1.4 嵌入式操作系統實時性特點 191
12.2 嵌入式操作系統FreeRTOS 193
12.2.1 FreeRTOS特性 193
12.2.2 結合STM32CubeMX的FreeRTOS開發 194
12.2.3 FreeRTOS的啟動過程 196
12.3 FreeRTOS移植思路 196
12.4 FreeRTOS內核架構 200
12.4.1 FreeRTOS的任務狀態 200
12.4.2 FreeRTOS的任務控制塊 201
12.4.3 FreeRTOS的任務調度機制 202
12.4.4 FreeRTOS的任務切換 203
12.4.5 FreeRTOS的中斷處理機制 203
12.5 FreeRTOS任務和時間管理 204
12.5.1 FreeRTOS任務管理 204
12.5.2 FreeRTOS時間管理 210
12.6 FreeRTOS互斥量 212
12.6.1 FreeRTOS互斥量概述 212
12.6.2 FreeRTOS互斥量實例 213
12.7 FreeRTOS信號量 215
12.7.1 FreeRTOS信號量概述 215
12.7.2 FreeRTOS信號量任務同步 216
12.7.3 FreeRTOS信號量共享資源管理 218
12.7.4 FreeRTOS計數信號量 219
12.7.5 FreeRTOS中斷服務程序與任務同步 222
12.8 FreeRTOS事件標誌組 224
12.8.1 FreeRTOS事件標誌組概述 224
12.8.2 FreeRTOS事件標誌組實例 226
12.9 FreeRTOS隊列 228
12.9.1 FreeRTOS隊列概述 228
12.9.2 FreeRTOS隊列實例 229
12.10 FreeRTOS內存管理 231
12.10.1 FreeRTOS內存管理概述 231
12.10.2 FreeRTOS內存管理實例 232
習題12 234
第13章 綜合設計實例 235
13.1 嵌入式系統開發流程 235
13.2 嵌入式系統開發實例——溫濕度自動檢測與報警系統 236
13.2.1 需求分析 237
13.2.2 方案設計 238
13.2.3 具體開發 239
13.2.4 系統測試 252
習題13 254
參考文獻 255