STM32單片機應用與全案例實踐(第2版)

沈紅衛,張瞳

  • 出版商: 電子工業
  • 出版日期: 2025-03-01
  • 定價: $408
  • 售價: 8.5$347
  • 語言: 簡體中文
  • 頁數: 316
  • ISBN: 7121496860
  • ISBN-13: 9787121496868
  • 相關分類: STM32
  • 下單後立即進貨 (約4週~6週)

相關主題

商品描述

本書涵蓋了基於ARM的STM32 HAL庫的基本概念、基本原理、應用技術。硬件原理的闡述以學生"適用、易學、掌握”為原則,降低讀者入門和理解的難度。STM32的軟件設計基於HAL庫,方便讀者上手。本書在內容組織和框架設計上具有兩個鮮明特點:全案例、基於讀者學習。從讀者學習的角度,組織每個章節的內容體系,對STM32常用的典型外設模塊的原理及其應用設計均以若乾個完整案例呈現,同時也給出了一個完整的綜合性工程案例,這些都十分有利於學習者學習和模仿。

目錄大綱

目 錄
第一篇 基於HAL + STM32CubeIDE
第1章 如何學習STM32 2
1.1 學習STM32必須具備的基礎知識 2
1.2 STM32的基本架構和基本原理 3
1.2.1 嵌入式與ARM 3
1.2.2 什麽是STM32 4
1.2.3 STM32的內部結構 5
1.2.4 STM32的時鐘樹 6
1.2.5 STM32典型芯片 9
1.3 STM32的開發 10
1.3.1 STM32的4種開發模式 10
1.3.2 HAL庫的文件結構 12
1.3.3 基於HAL庫開發中必須掌握的幾個概念 14
1.3.4 如何學習STM32 16
1.3.5 學習STM32所需工具和平臺 16
1.4 STM32的最小系統—學習和開發的最小平臺 18
1.5 本章小結 20
思考與實踐 21
第2章 STM32的工程創建和調試 22
2.1 STM32CubeMX與STM32CubeIDE 22
2.1.1 什麽是STM32CubeMX 22
2.1.2 STM32CubeIDE與STM32CubeMX的區別 22
2.2 STM32CubeIDE開發平臺的搭建 23
2.2.1 IDE平臺的安裝 23
2.2.2 Packs包下載與安裝 26
2.3 新建工程流程 29
2.4 STM32CubeIDE的功能及其基本操作 37
2.4.1 工具欄介紹 37
2.4.2 Debug調試模式 38
2.4.3 窗口和文本設置 39
2.5 本章小結 41
思考與實踐 41
第3章 通用輸入/輸出(GPIO)口 42
3.1 STM32 GPIO口概述 42
3.2 GPIO口的工作原理 42
3.2.1 GPIO引腳介紹 42
3.2.2 GPIO口的內部結構 43
3.2.3 GPIO口的工作模式 46
3.3 GPIO口配置與應用 50
3.3.1 GPIO口配置解析 50
3.3.2 GPIO函數 51
3.4 GPIO應用實例 52
3.4.1 GPIO輸出控制 52
3.4.2 單功能按鍵輸入 57
3.4.3 復用功能按鍵輸入 61
3.5 本章小結 63
思考與實踐 64
第4章 中斷 65
4.1 中斷及其基本原理 65
4.1.1 什麽是中斷 65
4.1.2 中斷系統 66
4.1.3 中斷處理流程 67
4.2 嵌套向量中斷控制器 68
4.2.1 嵌套向量中斷控制器的主要功能 68
4.2.2 異常和中斷 69
4.2.3 EXTI 71
4.3 EXTI的配置與應用 73
4.3.1 EXTI配置解析 73
4.3.2 EXTI函數 76
4.4 EXTI應用實例 76
4.4.1 EXTI控制LED翻轉 76
4.4.2 EXTI嵌套LED控制 83
4.5 本章小結 89
思考與實踐 90
第5章 串口(USART) 91
5.1 串行通信 91
5.1.1 嵌入式系統中的通信 91
5.1.2 同步/異步串行通信 92
5.1.3 UART 93
5.2 STM32的USART 95
5.2.1 USART接口 95
5.2.2 5路USART的引腳關系 96
5.2.3 USART的應用步驟 97
5.3 串口通信配置 97
5.3.1 串口設備配置解析 97
5.3.2 常用的UART函數 99
5.3.3 串口重定向 100
5.3.4 串口調試助手 101
5.4 串口應用實例 102
5.4.1 串口收發輪詢方式 102
5.4.2 串口收發中斷方式 109
5.4.3 串口空閑中斷方式 111
5.5 本章小結 112
思考與實踐 112
第6章 I2C和SPI 113
6.1 STM32的I2C總線 113
6.1.1 I2C總線概述 113
6.1.2 I2C總線的工作原理和註意事項 114
6.1.3 STM32的I2C總線的基本特點 116
6.2 STM32的I2C總線的應用要領 117
6.2.1 關於STM32的I2C模塊 117
6.2.2 I2C總線死鎖的原因及其解決辦法 118
6.2.3 STM32的I2C接收和發送流程 118
6.3 硬件I2C與軟件I2C 119
6.3.1 硬件I2C設備配置流程 119
6.3.2 接口函數及其應用 123
6.3.3 軟件I2C實現 126
6.4 STM32的SPI 129
6.4.1 硬件結構與時序 129
6.4.2 STM32 SPI的構成 131
6.4.3 STM32的SPI的主要工作流程 132
6.4.4 SPI函數及其應用 132
6.4.5 設備配置流程 133
6.5 I2C和SPI應用實例 135
6.5.1 I2C讀寫AT24C02 135
6.5.2 基於SPI總線實現OLED顯示 140
6.6 本章小結 152
思考與實踐 153
第7章 定時器 154
7.1 STM32定時器 154
7.1.1 高級定時器 154
7.1.2 通用定時器 155
7.1.3 基本定時器 156
7.2 PWM 157
7.2.1 什麽是PWM 157
7.2.2 PWM的主要參數 157
7.2.3 PWM的工作原理 157
7.2.4 PWM的應用 158
7.3 定時器配置 159
7.3.1 定時器模式 159
7.3.2 定時器參數 160
7.3.3 定時器中斷 161
7.4 主要接口函數 162
7.4.1 定時器啟停 162
7.4.2 比較輸出 162
7.4.3 PWM輸出 163
7.4.4 輸入捕獲 164
7.5 定時器應用實例 165
7.5.1 定時器控制LED 165
7.5.2 PWM呼吸燈 166
7.5.3 輸入捕獲 168
7.6 本章小結 171
思考與實踐 173
第8章 直接存儲器訪問(DMA) 174
8.1 STM32的DMA 174
8.1.1 什麽是DMA 174
8.1.2 DMA控制器的功能框圖 174
8.1.3 DMA的基本原理 175
8.1.4 DMA控制器的主要特點 175
8.2 DMA的配置要點 176
8.2.1 DMA控制器配置參數 176
8.2.2 DMA的優先級及其仲裁 176
8.2.3 DMA通道 177
8.2.4 DMA中斷請求 178
8.2.5 DMA註意事項 178
8.3 DMA配置 178
8.3.1 設備配置解析 178
8.3.2 配置函數解析 181
8.4 DMA應用實例 181
8.4.1 內存到內存傳輸方式應用(MEMTOMEM) 181
8.4.2 外設到內存傳輸方式應用 184
8.5 本章小結 187
思考與實踐 187
第9章 ADC 188
9.1 STM32F1的ADC 188
9.1.1 ADC及其基本特性 188
9.1.2 ADC誤差來源及消除措施 190
9.2 STM32外設模塊ADC的工作流程與編程要點 191
9.2.1 ADC的工作流程 191
9.2.2 ADC編程的要點 192
9.3 ADC配置 193
9.3.1 設備配置解析 193
9.3.2 接口函數 200
9.4 ADC應用實例 203
9.4.1 單ADC單通道應用示例 203
9.4.2 單ADC多通道應用示例 207
9.5 本章小結 211
思考與實踐 211
第10章 DAC 212
10.1 STM32的DAC 212
10.1.1 DAC的功能、特點 212
10.1.2 DAC的主要技術參數 213
10.1.3 DAC配置的基本過程 214
10.2 DAC配置 214
10.2.1 設備配置解析 214
10.2.2 接口函數 217
10.3 DAC應用實例 219
10.3.1 DAC輸出正弦波 219
10.3.2 DAC輸出三角波 221
10.4 本章小結 224
思考與實踐 224
第11章 Flash 225
11.1 STM32的Flash存儲器及其基本特性 225
11.1.1 嵌入式系統中的存儲器 225
11.1.2 Flash模塊的組織關系 226
11.1.3 STM32的Flash架構 226
11.1.4 Flash的相關操作 227
11.1.5 選項字節編程 228
11.2 Flash配置與接口函數 229
11.2.1 寫操作函數 229
11.2.2 解鎖與上鎖函數 230
11.2.3 Flash擦除函數 230
11.2.4 讀操作 231
11.2.5 選項字節相關操作函數 231
11.3 Flash應用實例 232
11.3.1 功能描述 232
11.3.2 軟件設計 232
11.3.3 實驗結果 234
?
11.4 本章小結 237
思考與實踐 237
第12章 綜合性設計項目 238
12.1 信號發生與採集 238
12.1.1 項目性能和功能要求 238
12.1.2 外設配置 238
12.1.3 程序設計 242
12.1.4 運行結果 242
12.2 煙霧報警及其處置的模擬 243
12.2.1 項目設計要求 243
12.2.2 外圍電路設計 243
12.2.3 外設配置 244
12.2.4 程序設計 245
12.2.5 運行結果 246
12.3 串口觸摸屏設計 246
12.3.1 功能描述 246
12.3.2 串口觸摸屏的程序設計 246
12.3.3 STM32的外設配置 249
12.3.4 程序設計 250
12.3.5 運行結果 251
12.4 本章小結 251
思考與實踐 251
第二篇 基於固件庫+Keil(MDK-ARM)
第13章 基於固件庫的開發及其示例 254
13.1 STM32的最小系統 254
13.2 STM32工程模板的建立 255
13.2.1 STM32的固件庫 255
13.2.2 新建工程模板的第一步——復制固件庫文件 259
13.2.3 新建工程模板的第二步——新建一個Keil工程 260
13.2.4 關於創建工程模板的簡單小結 266
13.3 程序的燒寫 267
13.3.1 基於串口的程序下載(燒寫)方式 268
13.3.2 基於JTAG(SWD)的程序下載(燒寫)方式 269
13.4 程序的調試 271
13.5 模板的使用 273
13.6 3個GPIO輸出的範例——STM32中實現 延時的三種常用方法 274
13.6.1 第一個LED工程——基於延時函數的延時 274
13.6.2 第二個LED工程——SysTick中斷延時 276
13.6.3 第三個LED工程——定時器中斷延時 278
13.7 本章小結 281
思考與實踐 282
第14章 液晶顯示在STM32中的應用——基於固件庫 283
14.1 STM32與12864液晶模塊連接的硬件接口 283
14.1.1 12864液晶模塊的基本原理 283
14.1.2 硬件接口 284
14.2 STM32與12864液晶模塊連接的軟件 接口實現——查詢“忙”狀態 284
14.2.1 程序設計思想 284
14.2.2 程序實現 285
14.2.3 程序演示 303
14.3 本章小結 304
思考與實踐 304