定 價:69.8 元
叢書名:高等學校信息技術(shù)人才能力培養(yǎng)系列教材
- 作者:梁晶 吳銀琴
- 出版時間:2021/12/1
- ISBN:9787115572790
- 出 版 社:人民郵電出版社
- 中圖法分類:TP360.21
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:128開
本書首先介紹了嵌入式系統(tǒng)的基本概念和背景知識,以及常見的嵌入式系統(tǒng)硬件和嵌入式系統(tǒng)開發(fā)工具;其次講解了基于Cortex-M3/M4架構(gòu)微控制器的內(nèi)部結(jié)構(gòu)和指令集,幫助讀者建立對嵌入式處理器的宏觀認識;然后介紹了STM32微控制器的開發(fā)工具鏈,包括STM32CubeMX、Keil MDK和設備驅(qū)動庫等;后以STM32F4系列微控制器為例,闡述了其主要功能模塊的工作原理和編程方法,包括這些模塊的內(nèi)部結(jié)構(gòu)、外圍硬件電路設計方法、寄存器組織和應用案例等內(nèi)容。
本書可作為高等院校計算機、電子信息、自動化、電力電氣等專業(yè)的“嵌入式系統(tǒng)原理”“嵌入式系統(tǒng)編程”“32位單片機原理與應用”等課程的教材和教學參考書,也可作為工程實訓、電子制作與競賽的實踐教材,還可作為從事自動控制、物聯(lián)網(wǎng)、機電一體化等應用領域開發(fā)工作的工程技術(shù)人員的參考書。
編輯推薦:
(1)本書針對讀者學習嵌入式系統(tǒng)入門困難、相關內(nèi)容較為抽象、學習以后動手能力差等問題,通過通俗易懂的文字描述和豐富的案例介紹,讓讀者掌握嵌入式系統(tǒng)的基本概念、工作原理和開發(fā)方法,同時盡量避免煩瑣的軟/硬件配置細節(jié)描述。
(2)本書使用的硬件環(huán)境基于 STM32F4 系列微控制器,具體型號是 STM32F407xx,其中闡述的微控制器工作原理與編程方法也適用于 STM32 系列中的其他型號的微控制器。全書案例使用C語言和 HAL 庫編程實現(xiàn)。為了照顧部分對嵌入式系統(tǒng)底層程序開發(fā)感興趣的讀者,本書在講解Cortex-M3/M4 架構(gòu)的部分保留了對匯編語言的介紹。
本書特色:
(1)結(jié)構(gòu)合理,語言精煉,案例豐富。
(2)基于Arm體系結(jié)構(gòu)的STM32F4系列微控制器。
(3)詳細介紹嵌入式系統(tǒng)的概念、原理、應用及開發(fā)工具鏈。
(4)配套豐富教輔資源,支持隨時隨地自學,助力讀者穩(wěn)步提升工程實踐能力。
梁晶:
2004年畢業(yè)于華中科技大學計算機學院嵌入式系統(tǒng)與智能控制專業(yè),獲工學碩士學位,武漢紡織大學計算機與人工智能學院專任教師,主要研究方向為嵌入式系統(tǒng)、人工智能、大數(shù)據(jù)技術(shù)。多年來在一線從事嵌入式系統(tǒng)、人工智能和大數(shù)據(jù)相關的教學和科研工作,主持和參與過多項校級、省級教研項目和科研項目。長期與企業(yè)合作從事嵌入式智能終端、車載互聯(lián)網(wǎng)等產(chǎn)品的研發(fā)工作,在嵌入式領域具備較強的理論功底和豐富的工程經(jīng)驗。
吳銀琴:
2003年畢業(yè)于華中科技大學生命科學與技術(shù)學院生物醫(yī)學工程專業(yè),獲工學碩士學位,中南民族大學電子與信息工程學院專任教師,主要研究方向為嵌入式系統(tǒng)、信號處理等。多年來一直從事嵌入式系統(tǒng)、信號處理相關的教學和科研工作,主持和參與過多項教學改革項目、實驗教改項目和科研項目,擁有豐富的教學經(jīng)驗。
第 1章 嵌入式系統(tǒng)概述 1
1.1 嵌入式系統(tǒng)的概念 1
1.2 嵌入式系統(tǒng)的特點 2
1.3 嵌入式系統(tǒng)的組成 4
1.4 嵌入式系統(tǒng)的應用領域 7
1.5 思考與練習 8
第 2章 嵌入式系統(tǒng)基礎知識 9
2.1 嵌入式硬件系統(tǒng) 9
2.1.1 嵌入式處理器 9
2.1.2 存儲器 17
2.1.3 外圍接口 20
2.2 嵌入式軟件系統(tǒng) 21
2.2.1 嵌入式操作系統(tǒng) 22
2.2.2 嵌入式圖形系統(tǒng) 23
2.3 嵌入式系統(tǒng)的開發(fā)流程與開發(fā)模式 25
2.3.1 嵌入式系統(tǒng)的開發(fā)流程 25
2.3.2 嵌入式系統(tǒng)的開發(fā)模式 26
2.4 思考與練習 30
第3章 Arm處理器介紹 31
3.1 概述 31
3.2 Arm體系結(jié)構(gòu) 32
3.2.1 Arm體系結(jié)構(gòu)的版本 33
3.2.2 Arm體系結(jié)構(gòu)的擴展 36
3.3 常見的Arm處理器 37
3.4 思考與練習 40
第4章 Cortex-M3/M4架構(gòu) 41
4.1 概述 41
4.2 Cortex-M3/M4的內(nèi)部結(jié)構(gòu) 42
4.3 Cortex-M3/M4的系統(tǒng)地址映射 46
4.4 Cortex-M3/M4的編程模型 47
4.4.1 工作模式和運行級別 48
4.4.2 存儲格式 48
4.4.3 寄存器組 49
4.5 Cortex-M3/M4的異常 53
4.6 指令集和匯編語言 54
4.6.1 Thumb指令集概述 54
4.6.2 匯編語言基礎 55
4.6.3 尋址方式 57
4.6.4 統(tǒng)一匯編語言 60
4.7 思考與練習 61
第5章 STM32系列微控制器 62
5.1 概述 62
5.2 STM32F407xx微控制器介紹 63
5.3 STM32F407xx的地址映射 67
5.4 啟動方式的配置 71
5.5 STM32系列微控制器的命名規(guī)則 72
5.6 STM32系列微控制器的引腳功能 73
5.7 STM32小系統(tǒng)的組成 75
5.8 思考與練習 78
第6章 STM32設備驅(qū)動庫和STM32CubeMX 79
6.1 CMSIS介紹 79
6.2 STM32設備驅(qū)動庫 82
6.2.1 STM32設備驅(qū)動庫簡介 82
6.2.2 預定義數(shù)據(jù)類型和結(jié)構(gòu)體 86
6.2.3 解析HAL庫 88
6.3 STM32CubeMX輔助開發(fā)工具 91
6.4 思考與練習 97
第7章 Keil MDK集成開發(fā)環(huán)境 98
7.1 Keil MDK介紹 98
7.2 Keil MDK安裝 99
7.3 Keil MDK使用 102
7.4 Keil MDK程序調(diào)試 110
7.5 STM32F407xx引導代碼解析 112
7.6 思考與練習 115
第8章 處理器時鐘 116
8.1 時鐘概述 116
8.2 時鐘相關參數(shù) 119
8.3 時鐘參數(shù)配置方法 120
8.3.1 工程設置 121
8.3.2 時鐘相關代碼解析 122
8.4 思考與練習 126
第9章 通用輸入輸出端口 127
9.1 STM32F4微控制器的GPIO端口 127
9.2 GPIO配置方法 129
9.3 GPIO編程 130
9.3.1 工程配置 131
9.3.2 GPIO相關數(shù)據(jù)結(jié)構(gòu)和API函數(shù) 132
9.3.3 GPIO代碼解析 133
9.4 位帶操作 137
9.4.1 位帶概述 137
9.4.2 位帶編程 138
9.5 思考與練習 140
第 10章 異常與中斷處理 141
10.1 中斷控制器的工作原理 141
10.1.1 中斷優(yōu)先級 142
10.1.2 外部中斷和事件 147
10.2 中斷編程 149
10.2.1 工程配置 149
10.2.2 中斷相關數(shù)據(jù)結(jié)構(gòu)和API函數(shù) 151
10.2.3 中斷代碼解析 154
10.3 思考與練習 157
第 11章 定時器 158
11.1 系統(tǒng)定時器 158
11.2 通用定時器 162
11.2.1 定時器的時鐘源 165
11.2.2 定時器的計數(shù)單元 167
11.3 定時器的基本計數(shù)功能 168
11.3.1 工程配置 169
11.3.2 計數(shù)相關數(shù)據(jù)結(jié)構(gòu)和API函數(shù) 171
11.3.3 定時器計數(shù)代碼解析 173
11.4 定時器的輸出比較模式 175
11.4.1 工程配置 175
11.4.2 輸出比較模式相關數(shù)據(jù)結(jié)構(gòu)和API函數(shù) 178
11.4.3 輸出比較模式代碼解析 179
11.5 定時器的PWM輸出模式 182
11.5.1 工程配置 183
11.5.2 PWM輸出模式相關數(shù)據(jù)結(jié)構(gòu)和API函數(shù) 184
11.5.3 PWM輸出模式代碼解析 185
11.6 定時器的外部時鐘模式 186
11.6.1 工程配置 187
11.6.2 外部時鐘模式代碼解析 188
11.7 定時器的級聯(lián) 189
11.7.1 工程配置 189
11.7.2 定時器級聯(lián)代碼解析 192
11.8 定時器的輸入捕獲模式 193
11.8.1 工程配置 193
11.8.2 輸入捕獲模式相關數(shù)據(jù)結(jié)構(gòu)和API函數(shù) 194
11.8.3 輸入捕獲模式代碼解析 195
11.9 思考與練習 197
第 12章 串行通信接口 199
12.1 串行通信與異步串行通信 199
12.1.1 串行通信概述 199
12.1.2 異步串行通信協(xié)議 200
12.1.3 異步串行通信的接口標準 201
12.2 STM32F407xx的異步串行通信 204
12.3 異步串行通信參數(shù)設置 205
12.4 阻塞方式串行通信 209
12.4.1 工程配置 210
12.4.2 異步串行通信相關數(shù)據(jù)結(jié)構(gòu)和API函數(shù) 211
12.4.3 異步串行通信阻塞方式通信代碼解析 213
12.5 非阻塞方式串行通信 215
12.5.1 工程配置 216
12.5.2 異步串行通信中斷處理相關函數(shù) 216
12.5.3 異步串行通信非阻塞方式通信代碼解析 217
12.6 思考與練習 219
第 13章 DMA 220
13.1 DMA介紹 220
13.1.1 STM32F4微控制器的DMA工作原理 220
13.1.2 DMA參數(shù)配置 222
13.2 外設與存儲器之間的DMA傳輸 224
13.2.1 工程配置 224
13.2.2 DMA相關數(shù)據(jù)結(jié)構(gòu)和API函數(shù) 226
13.2.3 外設到存儲器的DMA傳輸代碼解析 228
13.3 存儲器到存儲器的DMA傳輸 230
13.3.1 工程配置 231
13.3.2 存儲器到存儲器的DMA傳輸代碼解析 231
13.4 思考與練習 234
第 14章 數(shù)模轉(zhuǎn)換器 235
14.1 DAC介紹 235
14.2 STM32F407xx的DAC 236
14.3 軟件觸發(fā)方式 239
14.3.1 工程配置 239
14.3.2 DAC相關數(shù)據(jù)結(jié)構(gòu)和API函數(shù) 240
14.3.3 軟件觸發(fā)方式代碼解析 241
14.4 定時器觸發(fā)方式 242
14.4.1 工程配置 243
14.4.2 定時器觸發(fā)方式代碼解析 243
14.5 DMA方式的DAC編程 244
14.5.1 工程配置 245
14.5.2 DMA方式的DAC轉(zhuǎn)換代碼解析 245
14.6 思考與練習 247
第 15章 模數(shù)轉(zhuǎn)換器 248
15.1 ADC介紹 248
15.2 STM32F407xx的ADC 249
15.3 多重ADC模式 255
15.4 軟件觸發(fā)數(shù)據(jù)采樣 259
15.4.1 工程配置 259
15.4.2 ADC相關數(shù)據(jù)結(jié)構(gòu)和API函數(shù) 262
15.4.3 軟件觸發(fā)數(shù)據(jù)采樣代碼解析 264
15.5 定時器觸發(fā)數(shù)據(jù)采樣 266
15.5.1 軟件配置 266
15.5.2 定時器觸發(fā)數(shù)據(jù)采樣代碼解析 267
15.6 規(guī)則組數(shù)據(jù)采樣 268
15.6.1 工程配置 268
15.6.2 規(guī)則組數(shù)據(jù)采樣代碼解析 270
15.7 多重ADC模式數(shù)據(jù)采樣 272
15.7.1 工程配置 272
15.7.2 ADC擴展的API函數(shù) 273
15.7.3 多重ADC模式數(shù)據(jù)采樣代碼解析 274
15.8 思考與練習 275
第 16章 浮點運算與數(shù)字信號處理 276
16.1 Cortex-M4架構(gòu)的浮點運算 276
16.1.1 定點數(shù)和浮點數(shù) 277
16.1.2 Cortex-M4的浮點運算單元 278
16.1.3 浮點運算編程 279
16.2 DSP指令集 281
16.2.1 DSP相關數(shù)據(jù)類型 282
16.2.2 DSP指令集 283
16.3 CMSIS-DSP庫介紹 284
16.4 CMSIS-DSP庫編程舉例 286
16.4.1 向量運算 286
16.4.2 快速傅里葉變換 292
16.4.3 FIR濾波器 295
16.4.4 IIR濾波器 302
16.5 思考與練習 306
第 17章 綜合應用案例 307
17.1 智能小車的工作原理及編程 307
17.1.1 電機驅(qū)動模塊 308
17.1.2 循跡檢測模塊 313
17.1.3 超聲波測距模塊 315
17.2 多任務環(huán)境下的智能小車控制程序 318
17.2.1 Keil RTX5 319
17.2.2 基于Keil RTX5的多任務編程 320
17.3 思考與練習 325
參考文獻 326