基于HAL庫的STM32F1 開發(fā)實(shí)踐教程
定 價(jià):49 元
- 作者:張寶譯
- 出版時(shí)間:2023/12/1
- ISBN:9787121467783
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP368.1
- 頁碼:236
- 紙張:
- 版次:01
- 開本:16開
本書以STM32CubeMX(簡(jiǎn)稱CubeMX)軟件和MDK-ARM軟件為開發(fā)工具,以微控制器(MCU)型號(hào)為STM32F103VET6的開發(fā)板為例,全面介紹了CubeMX軟件的開發(fā)方式和HAL庫的應(yīng)用,包括STM32F103常用外設(shè)的配置、編程使用和CubeMX軟件的使用。 本書內(nèi)容全面,講解由淺入深,實(shí)例豐富,可讀性好,實(shí)用性強(qiáng)。本書通過項(xiàng)目驅(qū)動(dòng)的方式,能加強(qiáng)讀者對(duì)所學(xué)知識(shí)的理解,強(qiáng)化自身分析問題、解決問題的能力。 本書適合STM32初學(xué)者,以及從事嵌入式系統(tǒng)開發(fā)的工程技術(shù)人員閱讀和參考,也可作為高等學(xué)校相關(guān)專業(yè)的教材使用。
張寶譯,從事單片機(jī)設(shè)計(jì)與開發(fā)、綜合實(shí)踐等教學(xué)工作,指導(dǎo)學(xué)生參加電子類競(jìng)賽。研究方向?yàn)榍度胧较到y(tǒng)、慣性導(dǎo)航技術(shù),主持教育部協(xié)同育人項(xiàng)目1項(xiàng),獲授權(quán)發(fā)明專利1項(xiàng),發(fā)表論文2篇,計(jì)算機(jī)軟件著作權(quán)1項(xiàng)。
目錄
Contents
第1章 嵌入式系統(tǒng)概述 1
1.1 嵌入式系統(tǒng)的定義 1
1.2 嵌入式系統(tǒng)的特點(diǎn) 1
1.3 嵌入式系統(tǒng)與通用計(jì)算機(jī)系統(tǒng)的比較 2
1.3.1 嵌入式系統(tǒng)與通用計(jì)算機(jī)系統(tǒng)的共同點(diǎn) 2
1.3.2 嵌入式系統(tǒng)與通用計(jì)算機(jī)系統(tǒng)的不同點(diǎn) 3
1.4 嵌入式系統(tǒng)的基本分類 3
1.4.1 按照技術(shù)復(fù)雜度進(jìn)行分類 3
1.4.2 按照應(yīng)用領(lǐng)域進(jìn)行分類 3
1.5 嵌入式系統(tǒng)的應(yīng)用領(lǐng)域 4
1.6 嵌入式處理芯片 4
本章小結(jié) 6
思考與練習(xí) 6
第2章 ARM處理器與STM32微控制器 7
2.1 ARM公司簡(jiǎn)介 7
2.2 ARM處理器簡(jiǎn)介 8
2.3 Cortex-M3處理器 9
2.4 STM32微控制器 10
2.5 STM32芯片的結(jié)構(gòu) 13
2.6 存儲(chǔ)區(qū)映射 15
本章小結(jié) 16
思考與練習(xí) 17
第3章 開發(fā)環(huán)境及硬件平臺(tái) 18
3.1 系統(tǒng)設(shè)計(jì) 18
3.1.1 系統(tǒng)設(shè)計(jì)流程 20
3.1.2 嵌入式系統(tǒng)開發(fā)環(huán)境搭建 20
3.2 STM32固件庫 22
3.2.1 背景簡(jiǎn)介 22
3.2.2 HAL庫簡(jiǎn)介 23
3.3 CubeMX軟件 25
3.4 MDK-ARM軟件 28
3.5 硬件開發(fā)平臺(tái) 29
3.6 創(chuàng)建一個(gè)工程模板 29
3.7 下載程序 41
本章小結(jié) 45
思考與練習(xí) 45
第4章 使用CubeMX軟件生成開發(fā)項(xiàng)目 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ū)動(dòng)器 60
5.2.2 輸出驅(qū)動(dòng)器 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ū)動(dòng) 63
5.8 GPIO實(shí)例 66
5.8.1 LED流水燈控制 66
5.8.2 LED流水燈控制項(xiàng)目初始化代碼分析 68
5.8.3 按鍵輸入檢測(cè)及代碼分析 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)先級(jí)與中斷嵌套 82
6.2 STM32F103系列微控制器的中斷系統(tǒng) 83
6.3 中斷設(shè)置相關(guān)HAL驅(qū)動(dòng)程序 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ū)動(dòng)函數(shù) 92
6.6 外部中斷實(shí)例 94
6.6.1 利用外部中斷檢測(cè)按鍵并控制LED燈 94
6.6.2 項(xiàng)目代碼分析 96
6.6.3 本例代碼 99
本章小結(jié) 101
思考與練習(xí) 102
第7章 定時(shí)器 103
7.1 定時(shí)器概述 103
7.2 基本定時(shí)器 104
7.2.1 基本定時(shí)器概要 104
7.2.2 基本定時(shí)器主要特性介紹 104
7.2.3 基本定時(shí)器的組成和功能 104
7.3 通用定時(shí)器 105
7.3.1 通用定時(shí)器概要 105
7.3.2 通用定時(shí)器主要特性介紹 105
7.3.3 通用定時(shí)器的組成和功能 106
7.3.4 通用定時(shí)器的工作模式 107
7.4 高級(jí)定時(shí)器 111
7.4.1 高級(jí)定時(shí)器概要 111
7.4.2 高級(jí)定時(shí)器主要特性介紹 111
7.4.3 高級(jí)定時(shí)器結(jié)構(gòu) 111
7.5 定時(shí)器相關(guān)的HAL驅(qū)動(dòng) 112
7.5.1 定時(shí)器主要函數(shù) 112
7.5.2 其他通用操作函數(shù) 113
7.5.3 中斷處理 114
7.5.4 外設(shè)的中斷處理小結(jié) 116
7.6 定時(shí)器功能實(shí)例 118
7.6.1 LED燈定時(shí)翻轉(zhuǎn) 118
7.6.2 項(xiàng)目“LED燈定時(shí)翻轉(zhuǎn)”代碼分析 121
7.6.3 控制無源蜂鳴器 124
7.6.4 項(xiàng)目“控制無源蜂鳴器”代碼分析 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字長(zhǎng)設(shè)置 138
8.2.5 USART中斷 138
8.3 USART相關(guān)的HAL驅(qū)動(dòng) 139
8.3.1 串口常用HAL函數(shù) 139
8.3.2 中斷事件和回調(diào)函數(shù) 142
8.4 串口通信實(shí)例 142
8.4.1 串口發(fā)送數(shù)據(jù)實(shí)例 142
8.4.2 串口接收數(shù)據(jù)實(shí)例 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 時(shí)序圖 162
9.2.5 數(shù)據(jù)對(duì)齊 162
9.2.6 校準(zhǔn) 163
9.2.7 轉(zhuǎn)換時(shí)間 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ū)動(dòng) 166
9.4 ADC應(yīng)用實(shí)例 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ū)動(dòng) 182
10.4 IIC應(yīng)用實(shí)例 188
10.4.1 代碼解析 188
10.4.2 本例代碼 196
本章小結(jié) 199
思考與練習(xí) 199
第11章 直接存儲(chǔ)器訪問 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)點(diǎn) 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)先級(jí) 204
11.2.5 STM32F103系列微控制器的DMA傳輸模式 204
11.2.6 STM32F103系列微控制器的DMA中斷 204
11.3 DMA相關(guān)的HAL驅(qū)動(dòng) 205
11.3.1 DMA的HAL函數(shù) 205
11.3.2 DMA的中斷 207
11.4 DMA相關(guān)功能實(shí)例 208
11.4.1 串口使用DMA發(fā)送和接收數(shù)據(jù) 208
11.4.2 項(xiàng)目代碼分析 210
11.4.3 上位機(jī)控制及接收信息展示 214
11.4.4 本例代碼 215
本章小結(jié) 223
思考與練習(xí) 223
參考文獻(xiàn) 224