嵌入式微控制器原理及設計——基于STM32及Proteus仿真開發(fā)
定 價:49 元
- 作者:畢盛
- 出版時間:2021/12/1
- ISBN:9787121425035
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP332.021
- 頁碼:228
- 紙張:
- 版次:01
- 開本:16開
本書基于STM32芯片及Proteus仿真開發(fā)來講述嵌入式微控制器原理與設計,主要內容包括:嵌入式系統(tǒng)開發(fā)的相關背景;嵌入式ARM芯片體系結構及匯編語言;嵌入式系統(tǒng)開發(fā)環(huán)境、工具、編程語言及庫函數(shù);嵌入式芯片基本組成、最小系統(tǒng)、下載方式和低功耗模式;嵌入式芯片接口和嵌入式操作系統(tǒng)。本書分別對微控制器常見的GPIO、中斷、異步串行通信、同步串行通信、高級定時器、通用定時器、滴答時鐘、ADC、DMA、總線及USB接口進行了講解;同時對嵌入式物聯(lián)網(wǎng)操作系統(tǒng)進行了介紹,基于?C/OS-II展開并說明嵌入式操作系統(tǒng)的核心內容和功能;最后通過一個小車的實例說明嵌入式系統(tǒng)綜合實例的實現(xiàn)過程。本書在講解各個知識點的同時設計了Proteus仿真開發(fā)實例,從而有助于讀者對各個知識點的理解。本書可作為高等院校電子工程、自動化、計算機科學及技術和電氣工程等專業(yè)教材和參考書,也可供相關工程技術人員參考。
畢盛,華南理工大學計算機科學與工程學院副教授,一直從事高校嵌入式系統(tǒng)、機器人方向的教學和科研工作,指導學生實踐創(chuàng)新活動,發(fā)表過論文多篇。
第1章 嵌入式系統(tǒng)與微控制器 1
1.1 嵌入式系統(tǒng)相關概念 1
1.1.1 什么是嵌入式系統(tǒng) 1
1.1.2 嵌入式系統(tǒng)的特點 1
1.1.3 嵌入式系統(tǒng)主要組成 1
1.1.4 嵌入式芯片類型 3
1.2 微控制器 4
1.2.1 微控制器特點 4
1.2.2 微控制器芯片型號及發(fā)展歷史 4
1.2.3 ARM微控制器介紹 6
1.2.4 STM32 ARM Cortex-M微控制器 7
1.3 嵌入式系統(tǒng)開發(fā) 8
1.3.1 方案設計及芯片選型 8
1.3.2 嵌入式系統(tǒng)硬件開發(fā) 8
1.3.3 嵌入式系統(tǒng)軟件開發(fā) 9
1.3.4 嵌入式代碼編譯 11
1.3.5 嵌入式代碼下載及調試 11
1.4 微控制器芯片的發(fā)展趨勢 12
習題1 13
第2章 微控制器體系結構及匯編語言 14
2.1 Cortex-M3內核體系架構 15
2.1.1 Cortex-M3總體架構 15
2.1.2 Cortex-M3總線接口 16
2.1.3 Cortex-M3寄存器 16
2.1.4 Cortex-M3操作模式 18
2.1.5 Cortex-M3存儲器映射 19
2.1.6 流水線 19
2.1.7 異常和中斷 20
2.1.8 存儲器保護單元(MPU) 20
2.2 匯編指令尋址方式 20
2.3 ARM指令集 22
2.3.1 指令基本形式 22
2.3.2 ARM指令集條件碼 23
2.3.3 ARM指令種類 23
2.4 Thumb指令集 28
習題2 29
第3章 微控制器硬件系統(tǒng) 31
3.1 微控制器概述 31
3.1.1 STM32F103內部結構 31
3.1.2 STM32F103常用接口 33
3.1.3 STM32F103系列微控制器簡介 35
3.2 微控制器基本電路 36
3.2.1 電源電路 36
3.2.2 復位電路 37
3.2.3 時鐘源 38
3.2.4 時鐘管理單元 39
3.2.5 下載電路 41
3.2.6 啟動配置電路 42
3.3 微控制器低功耗模式 43
習題3 44
第4章 微控制器軟件開發(fā) 45
4.1 微控制器開發(fā)語言 45
4.1.1 開發(fā)語言介紹 45
4.1.2 嵌入式C語言 46
4.2 微控制器開發(fā)庫函數(shù) 51
4.2.1 STM32開發(fā)庫函數(shù)介紹 51
4.2.2 STM32 STD庫 53
4.2.3 STM32 HAL庫和LL庫 54
4.3 微控制器開發(fā)環(huán)境 56
4.3.1 MDK開發(fā)環(huán)境 56
4.3.2 STM32CubeMX軟件 57
4.4 微控制器虛擬仿真環(huán)境 58
4.5 微控制器程序調試和下載 60
習題4 61
第5章 GPIO 62
5.1 GPIO結構及特點 62
5.1.1 GPIO功能模式 62
5.1.2 GPIO特點及操作 63
5.1.3 GPIO開發(fā)實例 64
5.2 GPIO寄存器開發(fā)方式 65
5.2.1 GPIO寄存器說明 65
5.2.2 GPIO寄存器實現(xiàn)應用實例 66
5.3 GPIO STD庫開發(fā)方式 67
5.3.1 GPIO STD庫函數(shù)說明 67
5.3.2 GPIO STD庫應用實例 69
5.4 GPIO HAL庫開發(fā)方式 71
5.4.1 GPIO HAL庫函數(shù)說明 71
5.4.2 GPIO HAL庫應用實例 73
5.5 GPIO LL庫開發(fā)方式 76
5.5.1 GPIO LL庫函數(shù)說明 76
5.5.2 GPIO LL庫應用實例 79
5.6 GPIO應用開發(fā)實例 80
5.6.1 數(shù)碼管顯示實例 80
5.6.2 行列式鍵盤掃描實例 83
習題5 86
第6章 中斷 87
6.1 STM32中斷簡介 87
6.2 嵌套向量中斷控制器 89
6.2.1 NVIC寄存器 89
6.2.2 系統(tǒng)控制寄存器(SCB) 89
6.2.3 中斷和異常處理 90
6.2.4 STM32中斷優(yōu)先級 91
6.3 EXTI外部中斷 92
6.3.1 EXTI硬件結構 92
6.3.2 EXTI中斷操作 93
6.4 EXTI中斷應用實例 94
習題6 95
第7章 串行通信 96
7.1 串行通信簡介 96
7.1.1 串行通信基礎知識 96
7.1.2 微控制器常見串行通信方式 97
7.2 STM32 USART接口 98
7.2.1 USART硬件引腳 98
7.2.2 USART主要寄存器及中斷請求 99
7.2.3 UART異步通信 100
7.2.4 USART其他功能模式 101
7.3 UART異步串行操作 102
7.3.1 串行數(shù)據(jù)發(fā)送和接收 102
7.3.2 UART數(shù)據(jù)發(fā)送和接收應用實例 104
7.3.3 RS-232接口 107
7.3.4 printf串口終端實現(xiàn) 109
7.3.5 RS-485接口 110
7.4 基于串口的無線通信 111
7.4.1 移動通信 112
7.4.2 藍牙串口 112
7.4.3 串口無線網(wǎng)絡(WiFi) 113
7.4.4 ZigBee通信 113
7.5 SPI通信 113
7.5.1 STM32 SPI接口 113
7.5.2 SPI接口應用實例 115
習題7 117
第8章 定時器 118
8.1 定時器概述 118
8.1.1 通用定時器 119
8.1.2 高級定時器 119
8.1.3 高級/通用定時器接口 119
8.1.4 定時器引腳和寄存器 122
8.1.5 定時器時鐘源 123
8.1.6 定時器計數(shù)模式 123
8.2 定時器操作 124
8.2.1 定時功能及實例 124
8.2.2 計數(shù)功能及實例 127
8.2.3 捕獲功能及實例 129
8.2.4 輸出PWM模式及實例 131
8.2.5 其他功能模式 134
8.3 系統(tǒng)滴答定時器(SysTick) 135
8.3.1 SysTick工作分析及配置 136
8.3.2 SysTick功能實現(xiàn) 136
8.4 看門狗定時器(WDT) 138
8.4.1 獨立看門狗 138
8.4.2 窗口看門狗 139
8.4.3 獨立看門狗與窗口看門狗的區(qū)別 141
8.5 實時時鐘(RTC) 141
習題8 145
第9章 ADC 146
9.1 ADC概述 146
9.1.1 STM32的ADC功能 146
9.1.2 STM32的ADC結構 146
9.1.3 STM32芯片的ADC引腳 148
9.1.4 STM32的ADC工作模式 149
9.1.5 STM32的ADC主要寄存器 153
9.2 ADC應用實例 154
9.2.1 實例主要庫函數(shù)說明 154
9.2.2 ADC查詢和中斷實例 155
習題9 157
第10章 DMA 158
10.1 DMA概述 158
10.1.1 STM32的DMA特性 158
10.1.2 STM32的DMA主要寄存器 160
10.2 DMA應用實例 160
10.2.1 ADC數(shù)據(jù)采集DMA方式 160
10.2.2 串口發(fā)送DMA方式 161
習題10 163
第11章 其他接口 164
11.1 I2C總線 164
11.1.1 I2C總線介紹 164
11.1.2 STM32的I2C總線 165
11.1.3 I2C總線應用實例 167
11.2 CAN總線 171
11.2.1 CAN總線介紹 171
11.2.2 STM32的CAN總線 173
11.3 USB總線 173
11.3.1 USB簡介 173
11.3.2 STM32的USB接口 174
習題11 174
第12章 嵌入式操作系統(tǒng) 175
12.1 嵌入式操作系統(tǒng)概述 175
12.1.1 傳統(tǒng)小型嵌入式操作系統(tǒng) 175
12.1.2 嵌入式小型物聯(lián)網(wǎng)操作系統(tǒng) 176
12.1.3 嵌入式操作系統(tǒng)實時性特點 178
12.2 μC/OS-II嵌入式操作系統(tǒng) 178
12.2.1 μC/OS-II特性 179
12.2.2 μC/OS-II主要代碼說明 179
12.2.3 μC/OS-II的啟動過程 181
12.3 μC/OS-II操作系統(tǒng)移植 181
12.3.1 移植規(guī)劃 181
12.3.2 編寫OS_CPU.H 182
12.4 μC/OS-II內核結構 184
12.4.1 μC/OS-II的任務狀態(tài) 184
12.4.2 任務控制塊OS_TCB 185
12.4.3 μC/OS-II的任務調度 186
12.4.4 μC/OS-II的任務切換 187
12.4.5 μC/OS-II的中斷處理 188
12.5 μC/OS-II任務、時間及事件控制塊 188
12.5.1 任務管理 188
12.5.2 時間管理 189
12.5.3 事件控制塊 191
12.6 互斥信號量(Mutex) 192
12.6.1 互斥信號量介紹 192
12.6.1 互斥信號量實例 192
12.7 信號量 194
12.7.1 概述 194
12.7.2 信號量任務同步實例 195
12.7.3 信號量資源共享實例 197
12.7.4 中斷服務程序與任務同步實例 198
12.8 事件標志組 200
12.8.1 概述 200
12.8.2 事件標志組操作 201
12.9 消息郵箱 202
12.9.1 概述 202
12.9.2 消息郵箱操作 203
12.10 消息隊列 205
12.10.1 概述 205
12.10.2 消息隊列操作 206
12.11 動態(tài)內存管理 207
12.11.1 概述 207
12.11.2 動態(tài)內存管理操作實例 207
習題12 208
第13章 綜合設計實例 209
13.1 嵌入式系統(tǒng)開發(fā)流程 209
13.2 嵌入式系統(tǒng)開發(fā)實例 210
13.2.1 小車系統(tǒng)及整體設計 210
13.2.2 硬件設計說明 210
13.2.3 軟件設計說明 214
習題13 219
參考文獻 220