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