基于HAL庫的STM32F1 開發(fā)實踐教程
定 價:49 元
- 作者:張寶譯
- 出版時間:2023/12/1
- ISBN:9787121467783
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP368.1
- 頁碼:236
- 紙張:
- 版次:01
- 開本:16開
本書以STM32CubeMX(簡稱CubeMX)軟件和MDK-ARM軟件為開發(fā)工具,以微控制器(MCU)型號為STM32F103VET6的開發(fā)板為例,全面介紹了CubeMX軟件的開發(fā)方式和HAL庫的應(yīng)用,包括STM32F103常用外設(shè)的配置、編程使用和CubeMX軟件的使用。 本書內(nèi)容全面,講解由淺入深,實例豐富,可讀性好,實用性強。本書通過項目驅(qū)動的方式,能加強讀者對所學(xué)知識的理解,強化自身分析問題、解決問題的能力。 本書適合STM32初學(xué)者,以及從事嵌入式系統(tǒng)開發(fā)的工程技術(shù)人員閱讀和參考,也可作為高等學(xué)校相關(guān)專業(yè)的教材使用。
張寶譯,從事單片機設(shè)計與開發(fā)、綜合實踐等教學(xué)工作,指導(dǎo)學(xué)生參加電子類競賽。研究方向為嵌入式系統(tǒng)、慣性導(dǎo)航技術(shù),主持教育部協(xié)同育人項目1項,獲授權(quán)發(fā)明專利1項,發(fā)表論文2篇,計算機軟件著作權(quán)1項。
目錄
Contents
第1章 嵌入式系統(tǒng)概述 1
1.1 嵌入式系統(tǒng)的定義 1
1.2 嵌入式系統(tǒng)的特點 1
1.3 嵌入式系統(tǒng)與通用計算機系統(tǒng)的比較 2
1.3.1 嵌入式系統(tǒng)與通用計算機系統(tǒng)的共同點 2
1.3.2 嵌入式系統(tǒng)與通用計算機系統(tǒng)的不同點 3
1.4 嵌入式系統(tǒng)的基本分類 3
1.4.1 按照技術(shù)復(fù)雜度進行分類 3
1.4.2 按照應(yīng)用領(lǐng)域進行分類 3
1.5 嵌入式系統(tǒng)的應(yīng)用領(lǐng)域 4
1.6 嵌入式處理芯片 4
本章小結(jié) 6
思考與練習(xí) 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芯片的結(jié)構(gòu) 13
2.6 存儲區(qū)映射 15
本章小結(jié) 16
思考與練習(xí) 17
第3章 開發(fā)環(huán)境及硬件平臺 18
3.1 系統(tǒng)設(shè)計 18
3.1.1 系統(tǒng)設(shè)計流程 20
3.1.2 嵌入式系統(tǒng)開發(fā)環(huán)境搭建 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 硬件開發(fā)平臺 29
3.6 創(chuàng)建一個工程模板 29
3.7 下載程序 41
本章小結(jié) 45
思考與練習(xí) 45
第4章 使用CubeMX軟件生成開發(fā)項目 46
4.1 CubeMX軟件使用介紹 47
4.2 CubeMX軟件窗口界面描述 52
本章小結(jié) 58
思考與練習(xí) 58
第5章 通用輸入輸出口 59
5.1 GPIO概述 59
5.2 GPIO內(nèi)部結(jié)構(gòu) 59
5.2.1 輸入驅(qū)動器 60
5.2.2 輸出驅(qū)動器 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 開漏復(fù)用輸出 62
5.3.7 推挽輸出 62
5.3.8 推挽復(fù)用輸出 62
5.4 GPIO輸出速度 62
5.5 復(fù)用功能重映射 62
5.6 GPIO寄存器 63
5.7 GPIO的HAL驅(qū)動 63
5.8 GPIO實例 66
5.8.1 LED流水燈控制 66
5.8.2 LED流水燈控制項目初始化代碼分析 68
5.8.3 按鍵輸入檢測及代碼分析 72
5.8.4 本例代碼 77
本章小結(jié) 79
思考與練習(xí) 79
第6章 中斷系統(tǒng) 80
6.1 中斷概述 80
6.1.1 中斷的定義 80
6.1.2 中斷的應(yīng)用 80
6.1.3 中斷源與中斷屏蔽 81
6.1.4 中斷處理過程 82
6.1.5 中斷優(yōu)先級與中斷嵌套 82
6.2 STM32F103系列微控制器的中斷系統(tǒng) 83
6.3 中斷設(shè)置相關(guān)HAL驅(qū)動程序 87
6.4 STM32F103系列微控制器的外部中斷/事件控制器 89
6.4.1 EXTI的內(nèi)部結(jié)構(gòu) 89
6.4.2 EXTI工作原理 91
6.4.3 EXTI主要特性 91
6.5 外部中斷相關(guān)的HAL驅(qū)動函數(shù) 92
6.6 外部中斷實例 94
6.6.1 利用外部中斷檢測按鍵并控制LED燈 94
6.6.2 項目代碼分析 96
6.6.3 本例代碼 99
本章小結(jié) 101
思考與練習(xí) 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 高級定時器結(jié)構(gòu) 111
7.5 定時器相關(guān)的HAL驅(qū)動 112
7.5.1 定時器主要函數(shù) 112
7.5.2 其他通用操作函數(shù) 113
7.5.3 中斷處理 114
7.5.4 外設(shè)的中斷處理小結(jié) 116
7.6 定時器功能實例 118
7.6.1 LED燈定時翻轉(zhuǎn) 118
7.6.2 項目“LED燈定時翻轉(zhuǎn)”代碼分析 121
7.6.3 控制無源蜂鳴器 124
7.6.4 項目“控制無源蜂鳴器”代碼分析 126
7.6.5 本例代碼 127
本章小結(jié) 132
思考與練習(xí) 132
第8章 串行通信接口USART 134
8.1 數(shù)據(jù)通信的基本概念 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字長設(shè)置 138
8.2.5 USART中斷 138
8.3 USART相關(guān)的HAL驅(qū)動 139
8.3.1 串口常用HAL函數(shù) 139
8.3.2 中斷事件和回調(diào)函數(shù) 142
8.4 串口通信實例 142
8.4.1 串口發(fā)送數(shù)據(jù)實例 142
8.4.2 串口接收數(shù)據(jù)實例 145
8.4.3 本例代碼 149
本章小結(jié) 156
思考與練習(xí) 156
第9章 模擬數(shù)字轉(zhuǎn)換器 157
9.1 ADC概述 157
9.1.1 ADC的基本原理 157
9.1.2 ADC的性能參數(shù) 158
9.1.3 ADC的主要類型 159
9.2 STM32F103系列微控制器的ADC工作原理 159
9.2.1 主要特征 160
9.2.2 內(nèi)部結(jié)構(gòu) 160
9.2.3 通道及分組 160
9.2.4 時序圖 162
9.2.5 數(shù)據(jù)對齊 162
9.2.6 校準(zhǔn) 163
9.2.7 轉(zhuǎn)換時間 163
9.2.8 轉(zhuǎn)換模式 163
9.2.9 外部觸發(fā)轉(zhuǎn)換 165
9.2.10 中斷和DMA 165
9.3 ADC相關(guān)的HAL驅(qū)動 166
9.4 ADC應(yīng)用實例 168
9.4.1 讀取光敏傳感器數(shù)據(jù) 168
9.4.2 本例代碼 172
本章小結(jié) 175
思考與練習(xí) 175
第10章 IIC通信 176
10.1 IIC通信原理 176
10.1.1 IIC概述 176
10.1.2 IIC的數(shù)據(jù)傳送 177
10.2 STM32F103系列微控制器的IIC接口 180
10.2.1 STM32F103系列微控制器的IIC接口主要特性 180
10.2.2 STM32F103系列微控制器的IIC接口內(nèi)部結(jié)構(gòu) 181
10.2.3 STM32F103系列微控制器的IIC接口模式選擇 182
10.3 軟件IIC驅(qū)動 182
10.4 IIC應(yīng)用實例 188
10.4.1 代碼解析 188
10.4.2 本例代碼 196
本章小結(jié) 199
思考與練習(xí) 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優(yōu)點 201
11.2 STM32F103系列微控制器的DMA工作原理 201
11.2.1 STM32F103系列微控制器的DMA主要特性 201
11.2.2 STM32F103系列微控制器的DMA內(nèi)部結(jié)構(gòu) 202
11.2.3 STM32F103系列微控制器的DMA通道 203
11.2.4 STM32F103系列微控制器的DMA優(yōu)先級 204
11.2.5 STM32F103系列微控制器的DMA傳輸模式 204
11.2.6 STM32F103系列微控制器的DMA中斷 204
11.3 DMA相關(guān)的HAL驅(qū)動 205
11.3.1 DMA的HAL函數(shù) 205
11.3.2 DMA的中斷 207
11.4 DMA相關(guān)功能實例 208
11.4.1 串口使用DMA發(fā)送和接收數(shù)據(jù) 208
11.4.2 項目代碼分析 210
11.4.3 上位機控制及接收信息展示 214
11.4.4 本例代碼 215
本章小結(jié) 223
思考與練習(xí) 223
參考文獻 224