基於HAL庫的STM32F1 開發實踐教程

張寶譯

  • 出版商: 電子工業
  • 出版日期: 2023-12-01
  • 售價: $294
  • 貴賓價: 9.5$279
  • 語言: 簡體中文
  • 頁數: 236
  • ISBN: 712146778X
  • ISBN-13: 9787121467783
  • 相關分類: STM32
  • 立即出貨 (庫存 < 3)

商品描述

本書以STM32CubeMX(簡稱CubeMX)軟件和MDK-ARM軟件為開發工具,以微控制器(MCU)型號為STM32F103VET6的開發板為例,全面介紹了CubeMX軟件的開發方式和HAL庫的應用,包括STM32F103常用外設的配置、編程使用和CubeMX軟件的使用。 本書內容全面,講解由淺入深,實例豐富,可讀性好,實用性強。本書通過項目驅動的方式,能加強讀者對所學知識的理解,強化自身分析問題、解決問題的能力。 本書適合STM32初學者,以及從事嵌入式系統開發的工程技術人員閱讀和參考,也可作為高等學校相關專業的教材使用。

目錄大綱

目錄
Contents
第1章 嵌入式系統概述 1
1.1 嵌入式系統的定義 1
1.2 嵌入式系統的特點 1
1.3 嵌入式系統與通用電腦系統的比較 2
1.3.1 嵌入式系統與通用電腦系統的共同點 2
1.3.2 嵌入式系統與通用電腦系統的不同點 3
1.4 嵌入式系統的基本分類 3
1.4.1 按照技術復雜度進行分類 3
1.4.2 按照應用領域進行分類 3
1.5 嵌入式系統的應用領域 4
1.6 嵌入式處理芯片 4
本章小結 6
思考與練習 6
第2章 ARM處理器與STM32微控制器 7
2.1 ARM公司簡介 7
2.2 ARM處理器簡介 8
2.3 Cortex-M3處理器 9
2.4 STM32微控制器 10
2.5 STM32芯片的結構 13
2.6 存儲區映射 15
本章小結 16
思考與練習 17
第3章 開發環境及硬件平臺 18
3.1 系統設計 18
3.1.1 系統設計流程 20
3.1.2 嵌入式系統開發環境搭建 20
3.2 STM32固件庫 22
3.2.1 背景簡介 22
3.2.2 HAL庫簡介 23
3.3 CubeMX軟件 25
3.4 MDK-ARM軟件 28
3.5 硬件開發平臺 29
3.6 創建一個工程模板 29
3.7 下載程序 41
本章小結 45
思考與練習 45
第4章 使用CubeMX軟件生成開發項目 46
4.1 CubeMX軟件使用介紹 47
4.2 CubeMX軟件窗口界面描述 52
本章小結 58
思考與練習 58
第5章 通用輸入輸出口 59
5.1 GPIO概述 59
5.2 GPIO內部結構 59
5.2.1 輸入驅動器 60
5.2.2 輸出驅動器 60
5.3 GPIO工作模式 61
5.3.1 浮空輸入 61
5.3.2 上拉輸入 61
5.3.3 下拉輸入 61
5.3.4 模擬輸入 62
5.3.5 開漏輸出 62
5.3.6 開漏復用輸出 62
5.3.7 推輓輸出 62
5.3.8 推輓復用輸出 62
5.4 GPIO輸出速度 62
5.5 復用功能重映射 62
5.6 GPIO寄存器 63
5.7 GPIO的HAL驅動 63
5.8 GPIO實例 66
5.8.1 LED流水燈控制 66
5.8.2 LED流水燈控制項目初始化代碼分析 68
5.8.3 按鍵輸入檢測及代碼分析 72
5.8.4 本例代碼 77
本章小結 79
思考與練習 79
第6章 中斷系統 80
6.1 中斷概述 80
6.1.1 中斷的定義 80
6.1.2 中斷的應用 80
6.1.3 中斷源與中斷屏蔽 81
6.1.4 中斷處理過程 82
6.1.5 中斷優先級與中斷嵌套 82
6.2 STM32F103系列微控制器的中斷系統 83
6.3 中斷設置相關HAL驅動程序 87
6.4 STM32F103系列微控制器的外部中斷/事件控制器 89
6.4.1 EXTI的內部結構 89
6.4.2 EXTI工作原理 91
6.4.3 EXTI主要特性 91
6.5 外部中斷相關的HAL驅動函數 92
6.6 外部中斷實例 94
6.6.1 利用外部中斷檢測按鍵並控制LED燈 94
6.6.2 項目代碼分析 96
6.6.3 本例代碼 99
本章小結 101
思考與練習 102
第7章 定時器 103
7.1 定時器概述 103
7.2 基本定時器 104
7.2.1 基本定時器概要 104
7.2.2 基本定時器主要特性介紹 104
7.2.3 基本定時器的組成和功能 104
7.3 通用定時器 105
7.3.1 通用定時器概要 105
7.3.2 通用定時器主要特性介紹 105
7.3.3 通用定時器的組成和功能 106
7.3.4 通用定時器的工作模式 107
7.4 高級定時器 111
7.4.1 高級定時器概要 111
7.4.2 高級定時器主要特性介紹 111
7.4.3 高級定時器結構 111
7.5 定時器相關的HAL驅動 112
7.5.1 定時器主要函數 112
7.5.2 其他通用操作函數 113
7.5.3 中斷處理 114
7.5.4 外設的中斷處理小結 116
7.6 定時器功能實例 118
7.6.1 LED燈定時翻轉 118
7.6.2 項目“LED燈定時翻轉”代碼分析 121
7.6.3 控制無源蜂鳴器 124
7.6.4 項目“控制無源蜂鳴器”代碼分析 126
7.6.5 本例代碼 127
本章小結 132
思考與練習 132
第8章 串行通信接口USART 134
8.1 數據通信的基本概念 134
8.1.1 並行通信 134
8.1.2 串行通信 134
8.2 USART工作原理 136
8.2.1 USART介紹 136
8.2.2 USART的主要特性 136
8.2.3 USART功能概述 137
8.2.4 USART字長設置 138
8.2.5 USART中斷 138
8.3 USART相關的HAL驅動 139
8.3.1 串口常用HAL函數 139
8.3.2 中斷事件和回調函數 142
8.4 串口通信實例 142
8.4.1 串口發送數據實例 142
8.4.2 串口接收數據實例 145
8.4.3 本例代碼 149
本章小結 156
思考與練習 156
第9章 模擬數字轉換器 157
9.1 ADC概述 157
9.1.1 ADC的基本原理 157
9.1.2 ADC的性能參數 158
9.1.3 ADC的主要類型 159
9.2 STM32F103系列微控制器的ADC工作原理 159
9.2.1 主要特徵 160
9.2.2 內部結構 160
9.2.3 通道及分組 160
9.2.4 時序圖 162
9.2.5 數據對齊 162
9.2.6 校準 163
9.2.7 轉換時間 163
9.2.8 轉換模式 163
9.2.9 外部觸發轉換 165
9.2.10 中斷和DMA 165
9.3 ADC相關的HAL驅動 166
9.4 ADC應用實例 168
9.4.1 讀取光敏傳感器數據 168
9.4.2 本例代碼 172
本章小結 175
思考與練習 175
第10章 IIC通信 176
10.1 IIC通信原理 176
10.1.1 IIC概述 176
10.1.2 IIC的數據傳送 177
10.2 STM32F103系列微控制器的IIC接口 180
10.2.1 STM32F103系列微控制器的IIC接口主要特性 180
10.2.2 STM32F103系列微控制器的IIC接口內部結構 181
10.2.3 STM32F103系列微控制器的IIC接口模式選擇 182
10.3 軟件IIC驅動 182
10.4 IIC應用實例 188
10.4.1 代碼解析 188
10.4.2 本例代碼 196
本章小結 199
思考與練習 199
第11章 直接存儲器訪問 200
11.1 DMA基本概述 200
11.1.1 DMA由來 200
11.1.2 DMA定義 200
11.1.3 DMA傳輸過程 201
11.1.4 DMA優點 201
11.2 STM32F103系列微控制器的DMA工作原理 201
11.2.1 STM32F103系列微控制器的DMA主要特性 201
11.2.2 STM32F103系列微控制器的DMA內部結構 202
11.2.3 STM32F103系列微控制器的DMA通道 203
11.2.4 STM32F103系列微控制器的DMA優先級 204
11.2.5 STM32F103系列微控制器的DMA傳輸模式 204
11.2.6 STM32F103系列微控制器的DMA中斷 204
11.3 DMA相關的HAL驅動 205
11.3.1 DMA的HAL函數 205
11.3.2 DMA的中斷 207
11.4 DMA相關功能實例 208
11.4.1 串口使用DMA發送和接收數據 208
11.4.2 項目代碼分析 210
11.4.3 上位機控制及接收信息展示 214
11.4.4 本例代碼 215
本章小結 223
思考與練習 223
參考文獻 224