相關主題
商品描述
本書基於STM32芯片及Proteus模擬開發來講述嵌入式微控制器原理與設計,主要內容包括:嵌入式系統開發的相關背景;嵌入式ARM芯片體系結構及匯編語言;嵌入式系統開發環境、工具、編程語言及庫函數;嵌入式芯片基本組成、最小系統、下載方式和低功耗模式;嵌入式芯片接口和嵌入式操作系統。本書分別對微控制器常見的GPIO、中斷、異步串行通信、同步串行通信、高級定時器、通用定時器、滴答時鐘、ADC、DMA、總線及USB接口進行了講解;同時對嵌入式物聯網操作系統進行了介紹,基於?C/OS-II展開並說明嵌入式操作系統的核心內容和功能;最後通過一個小車的實例說明嵌入式系統綜合實例的實現過程。本書在講解各個知識點的同時設計了Proteus模擬開發實例,從而有助於讀者對各個知識點的理解。本書可作為高等院校電子工程、自動化、電腦科學及技術和電氣工程等專業教材和參考書,也可供相關工程技術人員參考。
目錄大綱
第1章 嵌入式系統與微控制器 1
1.1 嵌入式系統相關概念 1
1.1.1 什麽是嵌入式系統 1
1.1.2 嵌入式系統的特點 1
1.1.3 嵌入式系統主要組成 1
1.1.4 嵌入式芯片類型 3
1.2 微控制器 4
1.2.1 微控制器特點 4
1.2.2 微控制器芯片型號及發展歷史 4
1.2.3 ARM微控制器介紹 6
1.2.4 STM32 ARM Cortex-M微控制器 7
1.3 嵌入式系統開發 8
1.3.1 方案設計及芯片選型 8
1.3.2 嵌入式系統硬件開發 8
1.3.3 嵌入式系統軟件開發 9
1.3.4 嵌入式代碼編譯 11
1.3.5 嵌入式代碼下載及調試 11
1.4 微控制器芯片的發展趨勢 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章 微控制器硬件系統 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章 微控制器軟件開發 45
4.1 微控制器開發語言 45
4.1.1 開發語言介紹 45
4.1.2 嵌入式C語言 46
4.2 微控制器開發庫函數 51
4.2.1 STM32開發庫函數介紹 51
4.2.2 STM32 STD庫 53
4.2.3 STM32 HAL庫和LL庫 54
4.3 微控制器開發環境 56
4.3.1 MDK開發環境 56
4.3.2 STM32CubeMX軟件 57
4.4 微控制器虛擬模擬環境 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開發實例 64
5.2 GPIO寄存器開發方式 65
5.2.1 GPIO寄存器說明 65
5.2.2 GPIO寄存器實現應用實例 66
5.3 GPIO STD庫開發方式 67
5.3.1 GPIO STD庫函數說明 67
5.3.2 GPIO STD庫應用實例 69
5.4 GPIO HAL庫開發方式 71
5.4.1 GPIO HAL庫函數說明 71
5.4.2 GPIO HAL庫應用實例 73
5.5 GPIO LL庫開發方式 76
5.5.1 GPIO LL庫函數說明 76
5.5.2 GPIO LL庫應用實例 79
5.6 GPIO應用開發實例 80
5.6.1 數碼管顯示實例 80
5.6.2 行列式鍵盤掃描實例 83
習題5 86
第6章 中斷 87
6.1 STM32中斷簡介 87
6.2 嵌套向量中斷控制器 89
6.2.1 NVIC寄存器 89
6.2.2 系統控制寄存器(SCB) 89
6.2.3 中斷和異常處理 90
6.2.4 STM32中斷優先級 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 串行數據發送和接收 102
7.3.2 UART數據發送和接收應用實例 104
7.3.3 RS-232接口 107
7.3.4 printf串口終端實現 109
7.3.5 RS-485接口 110
7.4 基於串口的無線通信 111
7.4.1 移動通信 112
7.4.2 藍牙串口 112
7.4.3 串口無線網絡(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 定時器計數模式 123
8.2 定時器操作 124
8.2.1 定時功能及實例 124
8.2.2 計數功能及實例 127
8.2.3 捕獲功能及實例 129
8.2.4 輸出PWM模式及實例 131
8.2.5 其他功能模式 134
8.3 系統滴答定時器(SysTick) 135
8.3.1 SysTick工作分析及配置 136
8.3.2 SysTick功能實現 136
8.4 看門狗定時器(WDT) 138
8.4.1 獨立看門狗 138
8.4.2 窗口看門狗 139
8.4.3 獨立看門狗與窗口看門狗的區別 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 實例主要庫函數說明 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數據採集DMA方式 160
10.2.2 串口發送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章 嵌入式操作系統 175
12.1 嵌入式操作系統概述 175
12.1.1 傳統小型嵌入式操作系統 175
12.1.2 嵌入式小型物聯網操作系統 176
12.1.3 嵌入式操作系統實時性特點 178
12.2 μC/OS-II嵌入式操作系統 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操作系統移植 181
12.3.1 移植規劃 181
12.3.2 編寫OS_CPU.H 182
12.4 μC/OS-II內核結構 184
12.4.1 μC/OS-II的任務狀態 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 動態內存管理 207
12.11.1 概述 207
12.11.2 動態內存管理操作實例 207
習題12 208
第13章 綜合設計實例 209
13.1 嵌入式系統開發流程 209
13.2 嵌入式系統開發實例 210
13.2.1 小車系統及整體設計 210
13.2.2 硬件設計說明 210
13.2.3 軟件設計說明 214
習題13 219
參考文獻 220