嵌入式系統(tǒng)基礎與實踐——基于ARM Cortex-M3內(nèi)核的STM32微控制器
定 價:59 元
當前圖書已被 48 所學校薦購過!
查看明細
- 作者:劉黎明
- 出版時間:2020/9/1
- ISBN:9787121390890
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP332.3
- 頁碼:396
- 紙張:
- 版次:01
- 開本:16K
本書全面介紹了嵌入式系統(tǒng)開發(fā)與應用技術,以基于ARM Cortex-M3內(nèi)核的STM32F103系列微控制器為硬件平臺,系統(tǒng)講述了嵌入式系統(tǒng)開發(fā)的基本知識、基本方法以及以STM32F103系列微控制器為核心的嵌入式系統(tǒng)軟、硬件開發(fā)過程。主要內(nèi)容包括:嵌入式系統(tǒng)開發(fā)基礎知識;ARM技術概述;基于ARM的嵌入式系統(tǒng)應用程序設計;基于STM32F103的嵌入式系統(tǒng)應用開發(fā)實例;uC/OS-III操作系統(tǒng)及應用開發(fā)。
目 錄
第1章 嵌入式系統(tǒng)概述 1
1.1 信息技術的發(fā)展 1
1.1.1 計算機的誕生 1
1.1.2 通用信息處理 2
1.1.3 人工智能 3
1.2 嵌入式系統(tǒng) 5
1.2.1 嵌入式系統(tǒng)案例分析 6
1.2.2 嵌入式系統(tǒng)概念 9
1.2.3 嵌入式系統(tǒng)與物聯(lián)網(wǎng) 10
1.3 嵌入式初學者雜談 11
1.3.1 MCU、MPU、ARM、FPGA、DSP概念 11
1.3.2 MCU開發(fā)與ARM-Linux開發(fā)的區(qū)別 15
1.3.3 開源硬件Arduino和樹莓派 16
1.4 嵌入式系統(tǒng)開發(fā)流程 17
1.4.1 系統(tǒng)需求分析 17
1.4.2 系統(tǒng)總體設計 18
1.4.3 系統(tǒng)軟/硬件設計 20
1.4.4 系統(tǒng)軟/硬件測試 21
習題1 21
第2章 ARM Cortex-M3內(nèi)核與STM32微控制器 22
2.1 嵌入式系統(tǒng)基礎知識 22
2.1.1 馮·諾依曼結構與哈佛結構 22
2.1.2 ARM存儲模式 24
2.1.3 CISC和RISC 25
2.1.4 流水線技術 27
2.2 ARM 29
2.2.1 ARM介紹 29
2.2.2 ARM體系結構 30
2.3 ARM Cortex-M3內(nèi)核 33
2.3.1 內(nèi)核架構 34
2.3.2 寄存器 37
2.3.3 存儲結構 39
2.3.4 中斷與異常(NVIC) 40
2.4 STM32微控制器結構 42
2.4.1 STM32系統(tǒng)結構 42
2.4.2 STM32總線結構 43
2.4.3 STM32存儲結構 44
2.4.4 STM32中斷 46
2.4.5 STM32時鐘系統(tǒng) 48
習題2 49
第3章 STM32微控制器及開發(fā)環(huán)境搭建 50
3.1 STM32介紹 50
3.2 STM32微控制器開發(fā)模式 55
3.2.1 寄存器開發(fā)模式 56
3.2.2 標準外設庫開發(fā)模式 57
3.2.3 HAL庫開發(fā)模式 58
3.3 開發(fā)平臺的搭建 60
3.3.1 嵌入式開發(fā)環(huán)境 60
3.3.2 集成開發(fā)環(huán)境Keil 62
3.3.3 下載和安裝Packs包 63
3.4 基于標準外設庫開發(fā)平臺搭建 66
3.4.1 STM32標準外設庫文件結構 66
3.4.2 基于標準外設庫新建工程模板 73
3.5 基于HAL庫開發(fā)平臺的搭建 87
3.5.1 Java運行環(huán)境的安裝 87
3.5.2 安裝STM32CubeMX軟件 87
3.5.3 STM32CubeF1庫文件結構 89
3.5.4 STM32CubeMX生成的工程架構解析 90
習題3 96
第4章 STM32最小系統(tǒng)與嵌入式C語言 98
4.1 STM32最小系統(tǒng) 98
4.1.1 電源電路 98
4.1.2 時鐘電路 100
4.1.3 復位電路 101
4.1.4 調(diào)試和下載電路 102
4.2 嵌入式C語言 104
4.2.1 STM32的數(shù)據(jù)類型 105
4.2.2 const關鍵字 108
4.2.3 static關鍵字 108
4.2.4 volatile關鍵字 110
4.2.5 extern關鍵字 110
4.2.6 struct結構體 112
4.2.7 enum 113
4.2.8 typedef 114
4.2.9 #define 115
4.2.10 #ifdef、#ifndef、#else、#if條件編譯 117
4.2.11 指針 119
4.2.12 回調(diào)函數(shù) 125
4.3 HAL庫文件源代碼分析 126
4.3.1 stm32f1xx.h 126
4.3.2 stm32f103xe.h 131
4.3.3 stm32f1xx_hal.c和stm32f1xx_hal.h 135
4.3.4 stm32f1xx_hal_gpio.c和stm32f1xx_hal_gpio.h 138
習題4 140
第5章 通用輸入/輸出 141
5.1 GPIO概述 141
5.2 STM32的GPIO工作原理 142
5.2.1 STM32F103引腳圖 143
5.2.2 GPIO內(nèi)部結構 144
5.2.3 GPIO工作模式 145
5.2.4 GPIO輸出速度 148
5.3 GPIO標準外設庫接口函數(shù)及應用 148
5.3.1 GPIO標準外設庫接口函數(shù) 148
5.3.2 GPIO標準外設庫應用實例 151
5.3.3 基于標準外設庫開發(fā)的一般流程 154
5.4 GPIO的HAL庫接口函數(shù)及應用 156
5.4.1 GPIO的HAL庫接口函數(shù) 156
5.4.2 GPIO的HAL庫應用實例 161
5.4.3 基于HAL庫開發(fā)的一般流程 175
5.5 編程思想之模塊化編程 176
習題5 179
第6章 中斷 180
6.1 中斷的相關概念 180
6.1.1 什么是中斷? 180
6.1.2 為什么使用中斷? 181
6.1.3 中斷處理流程 181
6.2 STM32中斷和異常 183
6.2.1 STM32中斷和異常向量表 183
6.2.2 STM32中斷優(yōu)先級 188
6.2.3 STM32中斷服務程序 190
6.3 STM32外部中斷EXTI 191
6.4 EXTI標準外設庫接口函數(shù)及應用 194
6.4.1 EXTI標準外設庫接口函數(shù) 194
6.4.2 EXTI標準外設庫中斷配置步驟 196
6.4.3 EXTI標準外設庫應用實例 197
6.5 EXTI的HAL庫接口函數(shù)及應用 201
6.5.1 EXTI的HAL庫接口函數(shù) 201
6.5.2 EXTI的HAL庫應用實例 202
習題6 208
第7章 串口通信 209
7.1 通信概述 209
7.2 異步串行通信 212
7.2.1 異步串行通信協(xié)議 212
7.2.2 異步串行通信接口 213
7.3 STM32的USART模塊 215
7.3.1 USART內(nèi)部結構 215
7.3.2 USART接口 218
7.3.3 USART編程模式 219
7.4 USART標準外設庫接口函數(shù)及應用 220
7.4.1 USART標準外設庫接口函數(shù) 220
7.4.2 USART串口應用編程步驟 225
7.4.3 USART標準外設庫應用實例 226
7.5 USART的HAL庫接口函數(shù)及應用 232
7.5.1 UART的HAL庫接口函數(shù) 232
7.5.2 USART的HAL庫應用實例 236
7.5.3 USART應用實例拓展 241
7.6 編程思想之自定義串口通信協(xié)議 243
習題7 246
第8章 DMA 247
8.1 DMA基礎理論知識 247
8.2 STM32的DMA模塊 248
8.2.1 STM32的DMA內(nèi)部結構 248
8.2.2 DMA優(yōu)先權 250
8.2.3 DMA中斷請求 250
8.3 DMA標準外設庫接口函數(shù)及應用 252
8.3.1 DMA標準外設庫接口函數(shù) 252
8.3.2 DMA標準外設庫的配置過程 254
8.3.3 DMA標準外設庫函數(shù)的應用實例 255
8.4 DMA的HAL庫接口函數(shù)及應用 259
8.4.1 DMA的HAL庫接口函數(shù) 259
8.4.2 DMA的HAL庫應用實例 261
習題8 266
第9章 定時器 267
9.1 STM32定時器 268
9.1.1 STM32通用定時器 269
9.1.2 STM32基本定時器 272
9.1.3 STM32高級定時器 273
9.2 定時器標準外設庫接口函數(shù)及應用 273
9.2.1 定時器標準外設庫接口函數(shù) 273
9.2.2 定時器標準外設庫配置過程 275
9.2.3 定時器標準外設庫應用實例 277
9.3 PWM 279
9.3.1 STM32定時器PWM的工作原理 280
9.3.2 PWM標準外設庫輸出配置過程 281
9.3.3 PWM標準外設庫的應用實例 283
9.4 SysTick定時器 285
9.4.1 SysTick標準外設庫函數(shù) 285
9.4.2 SysTick定時器的應用實例 287
9.5 定時器HAL庫接口函數(shù)及應用 289
9.5.1 定時器HAL庫接口函數(shù) 289
9.5.2 定時器HAL庫應用實例 294
9.6 編程思想之狀態(tài)機設計思想 300
習題9 303
第10章 ADC 304
10.1 ADC基礎理論知識 304
10.1.1 A/D轉(zhuǎn)換過程 304
10.1.2 A/D轉(zhuǎn)換的主要技術參數(shù) 305
10.2 STM32的ADC 306
10.2.1 ADC的引腳 306
10.2.2 ADC通道選擇 308
10.2.3 ADC中斷和DMA請求 309
10.2.4 ADC轉(zhuǎn)換時間 310
10.2.5 ADC數(shù)據(jù)對齊 310
10.2.6 ADC的轉(zhuǎn)換模式 311
10.2.7 ADC校準 311
10.3 ADC標準外設庫接口函數(shù)及應用 312
10.3.1 ADC標準外設庫接口函數(shù) 312
10.3.2 ADC標準外設庫配置過程 315
10.3.3 ADC標準外設庫的應用實例 317
10.4 ADC的HAL庫接口函數(shù)及應用 321
10.4.1 ADC的HAL庫接口函數(shù) 321
10.4.2 ADC的HAL庫應用實例 323
習題10 331
第11章 從模塊到項目 332
11.1 從模塊到項目的開發(fā)思路 332
11.1.1 項目需求分析 332
11.1.2 系統(tǒng)總體架構設計 333
11.1.3 系統(tǒng)軟/硬件設計 335
11.2 項目實踐 336
11.2.1 項目需求分析 337
11.2.2 系統(tǒng)總體架構設計 338
11.2.3 系統(tǒng)硬件設計 339
11.2.4 系統(tǒng)軟件設計 341
11.3 面向?qū)ο蟮木幊趟枷?343
習題11 344
第12章 嵌入式操作系統(tǒng) 345
12.1 概述 345
12.1.1 嵌入式系統(tǒng)的開發(fā)方式 345
12.1.2 計算機系統(tǒng)的分層設計思想 347
12.2 嵌入式操作系統(tǒng)的概念 349
12.2.1 計算機操作系統(tǒng) 349
12.2.2 嵌入式操作系統(tǒng) 351
12.2.3 嵌入式操作系統(tǒng)的分類 351
12.3 嵌入式實時操作系統(tǒng) 352
12.3.1 μC/OS-Ⅲ的任務 352
12.3.2 μC/OS-Ⅲ時鐘和中斷 361
12.3.3 μC/OS-Ⅲ任務間通信與同步 365
12.4 μC/OS-Ⅲ移植與應用 366
12.4.1 μC/OS-Ⅲ源代碼下載 367
12.4.2 μC/OS-Ⅲ移植 369
12.4.3 μC/OS-Ⅲ多任務應用實例 379
習題12 383
參考文獻 384