嵌入式Cortex-M3基礎與項目實踐 版權信息
- ISBN:9787121459818
- 條形碼:9787121459818 ; 978-7-121-45981-8
- 裝幀:平塑
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
嵌入式Cortex-M3基礎與項目實踐 本書特色
本書由多年深耕嵌入式單片機開發和培訓的信盈達公司組織,具有資深一線實戰開發經驗的工程師和豐富職業院校教學經驗老師聯合編寫,從項目實踐出發,理論結合應用,詳解嵌入式Cortex-M3基礎知識和各項關鍵技術。本書提供硬件原理圖資料、實例源程序、教學PPT、實驗指導、芯片手冊等配套資料,讀者可免費下載使用。
從項目實踐出發,理論結合應用,詳解嵌入式Cortex-M3基礎知識和各項關鍵技術;免費提供硬件原理圖、實例源程序、教學PPT
嵌入式Cortex-M3基礎與項目實踐 內容簡介
本教材共23章,首先介紹了嵌入式系統、STM32的軟件開發環境及實驗平臺資源;接著詳細地講解了STM32芯片中GPIO、UART、NVIC、SysTick、Timer、WDG、RTC、DMA、ADC、DAC、I2C、SPI、LCD、TOUCH、FSMC、SDIO、CAN、USB等功能,并通過模塊的學習,讓讀者充分掌握STM32相關知識點;同時通過項目實踐,幫助讀者掌握項目開發的設計流程,并把STM32模塊知識充分應用到項目中,從而鞏固之前所學的知識。本教材從項目實踐出發,通過模塊化學習并應用在實際項目中,培養讀者在實際開發應用中發現問題、分析問題和解決問題的能力。同時,本教材提供硬件原理圖資料、實例源程序、教學PPT、實驗指導、芯片手冊等配套資料,有助于提高讀者的學習效果和開發能力。
嵌入式Cortex-M3基礎與項目實踐 目錄
目 錄
第1章 初識嵌入式系統 1
1.1 學習目的 1
1.2 嵌入式系統概述 1
1.2.1 嵌入式系統定義 1
1.2.2 嵌入式處理器 1
1.3 嵌入式操作系統概述 3
1.3.1 操作系統簡介 4
1.3.2 嵌入式操作系統常見的術語 5
1.3.3 常見的嵌入式操作系統 7
1.4 ARM體系結構 9
1.4.1 ARM簡介 9
1.4.2 ARM的應用領域及特點 10
1.4.3 ARM系列的微處理器 11
1.4.4 ARM微處理器結構 12
1.4.5 ARM的應用選型 13
1.4.6 ARM體系結構 14
1.4.7 ARM模式 16
1.4.8 ARM內部寄存器 16
1.4.9 ARM異常 17
1.5 STM32解讀 22
1.5.1 STM32資源 22
1.5.2 STM32存儲器組織 22
1.5.3 STM32*小系統 24
1.5.4 STM32調試接口簡介 24
1.5.5 STM32內部結構 25
1.5.6 STM32時鐘控制 26
1.5.7 STM32指令集 26
1.5.8 STM32F103ZET6簡介 27
1.5.9 STM32F103ZET6特性 27
1.6 本章課后作業 28
第2章 環境搭建及工具使用 29
2.1 學習目的 29
2.2 Keil安裝 29
2.3 ST-LINK仿真驅動安裝 30
2.4 STM32庫函數獲得 31
2.5 基于固件庫新建工程 31
2.6 MDK編譯及下載調試 33
2.6.1 MDK編譯 33
2.6.2 MDK仿真 34
2.7 本章課后作業 36
第3章 實驗平臺硬件資源 37
3.1 學習目的 37
3.2 實驗平臺硬件資源 37
3.3 外圍硬件 39
3.3.1 CPU電路 39
3.3.2 電源電路 40
3.3.3 晶振電路 40
3.3.4 復位電路 40
3.4 本章課后作業 40
第4章 GPIO接口實驗 41
4.1 學習目的 41
4.2 GPIO接口的原理 41
4.2.1 GPIO接口簡介 41
4.2.2 GPIO接口類型分析 42
4.2.3 GPIO接口功能配置 43
4.2.4 GPIO接口相關寄存器 44
4.2.5 GPIO接口相關的庫函數 59
4.3 LED實驗硬件設計 61
4.3.1 硬件原理圖 61
4.3.2 LED實驗硬件原理圖分析 61
4.4 LED實驗軟件設計 61
4.5 LED實驗示例程序分析及仿真 62
4.5.1 LED初始化函數 62
4.5.2 LED閃爍函數 62
4.5.3 LED相關宏定義 63
4.5.4 LED實驗main函數 63
4.6 按鍵輸入實驗 63
4.6.1 按鍵輸入實驗硬件設計 63
4.6.2 按鍵輸入實驗軟件設計 64
4.6.3 按鍵掃描函數 64
4.6.4 KEY相關宏定義 65
4.6.5 按鍵實驗main函數 65
4.7 本章課后作業 66
第5章 UART實驗 67
5.1 學習目的 67
5.2 通用串口通信簡介 67
5.2.1 通信概述 67
5.2.2 同步通信和異步通信 67
5.2.3 串行通信的數據傳送速率 69
5.2.4 串行通信方式 69
5.3 STM32F1串口模塊 69
5.3.1 STM32F1串口模塊功能描述 69
5.3.2 STM32F1串口模塊的結構 71
5.3.3 STM32F1串口模塊I/O接口分布 72
5.3.4 STM32F1串口模塊相關寄存器 76
5.3.5 STM32F1串口模塊相關庫函數 85
5.4 UART實驗硬件設計 89
5.5 UART實驗軟件設計 90
5.6 UART實驗示例程序分析及仿真 90
5.6.1 UART 初始化函數 90
5.6.2 UART 測試函數 91
5.6.3 UART實驗main函數 91
5.6.4 仿真下載測試 92
5.7 本章課后作業 92
第6章 外部中斷實驗 93
6.1 學習目的 93
6.2 中斷概述 93
6.2.1 中斷定義 93
6.2.2 中斷的意義 93
6.2.3 中斷優先級及中斷嵌套 94
6.3 Cortex-M3中斷體系 94
6.3.1 NVIC簡介 94
6.3.2 NVIC優先級表示 95
6.3.3 Cortex-M3異常中斷向量表 96
6.3.4 STM32F1異常中斷向量表 96
6.3.5 STM32F1異常中斷向量表的定義 98
6.3.6 Cortex-M3中斷設置相關庫函數 98
6.3.7 中斷服務函數 100
6.4 外部中斷 101
6.4.1 外部中斷簡介 101
6.4.2 外部中斷/事件控制器的結構 101
6.4.3 外部中斷線配置 102
6.4.4 外部中斷相關庫函數 102
6.4.5 NVIC相關庫函數 104
6.5 外部中斷實驗硬件設計 105
6.6 外部中斷實驗軟件設計 105
6.7 外部中斷實驗示例程序分析及仿真 106
6.7.1 外部中斷0初始化函數 106
6.7.2 外部中斷服務函數 107
6.8 本章課后作業 107
第7章 SysTick定時器實驗 108
7.1 學習目的 108
7.2 SysTick定時器概述 108
7.2.1 SysTick定時器的作用 108
7.2.2 SysTick定時器的結構 109
7.2.3 SysTick定時器的寄存器 109
7.2.4 SysTick定時器的庫函數 111
7.3 SysTick定時器實驗硬件設計 112
7.4 SysTick定時器實驗軟件設計 112
7.5 SysTick定時器實驗示例程序分析及仿真 112
7.5.1 SysTick初始化函數 112
7.5.2 SysTick定時器實驗main函數 113
7.6 本章課后作業 113
第8章 基本定時器實驗 114
8.1 學習目的 114
8.2 基本定時器 114
8.2.1 基本定時器簡介 114
8.2.2 基本定時器特征 114
8.2.3 基本定時器的結構 114
8.2.4 基本定時器時基單元 115
8.2.5 基本定時器相關庫函數 116
8.3 基本定時器實驗硬件設計 119
8.4 基本定時器實驗軟件設計 119
8.5 基本定時器實驗示例程序分析及仿真 119
8.5.1 基本定時器初始化函數 119
8.5.2 基本定時器中斷服務函數 120
8.6 本章課后作業 120
第9章 通用定時器實驗 121
9.1 學習目的 121
9.2 通用定時器概述 121
9.2.1 通用定時器介紹 121
9.2.2 通用定時器的結構 121
9.2.3 通用定時器PWM應用 122
9.2.4 通用定時器捕獲模式 123
9.2.5 通用定時器相關庫函數 124
9.3 通用定時器實驗硬件設計 127
9.4 通用定時器實驗軟件設計 127
9.5 通用定時器實驗示例程序分析及仿真 127
9.5.1 通用定時器3初始化函數 127
9.5.2 通用定時器3中斷服務函數 128
9.5.3 通用定時器實驗main函數 129
9.6 本章課后作業 129
第10章 看門狗實驗 130
10.1 學習目的 130
10.2 獨立看門狗 130
10.2.1 獨立看門狗的特征 130
10.2.2 獨立看門狗的結構 131
10.2.3 獨立看門狗的超時時間 131
10.2.4 獨立看門狗相關庫函數 132
10.3 獨立看門狗實驗硬件設計 134
10.4 獨立看門狗實驗軟件設計 134
10.5 獨立看門狗實驗示例程序分析及仿真 134
10.5.1 獨立看門狗初始化函數 134
10.5.2 獨立看門狗實驗main函數 135
10.6 窗口看門狗 136
10.6.1 窗口看門狗特征 136
10.6.2 窗口看門狗的結構 136
10.6.3 窗口看門狗的超時時間 136
10.6.4 窗口看門狗相關庫函數 137
10.7 窗口看門狗實驗硬件設計 140
10.8 軟件看門狗實驗軟件設計 140
10.9 窗口看門狗實驗示例程序分析及仿真 140
10.9.1 窗口看門狗初始化函數 140
10.9.2 窗口看門狗中斷服務函數 141
10.9.3 窗口看門狗實驗main函數 141
10.10 本章課后作業 142
第11章 RTC實驗 143
11.1 學習目的 143
11.2 RTC概述 143
11.3 常用RTC 143
11.3.1 DS1302 143
11.3.2 PCF8563 143
11.4 STM32F1 RTC 144
11.4.1 STM32F1 RTC概述 144
11.4.2 STM32F1 RTC的結構 145
11.4.3 STM32F1 RTC時鐘源 145
11.4.4 STM32F1 RTC時鐘源相關庫函數介紹 147
11.4.5 STM32F1 RTC相關庫函數 150
11.5 RTC實驗硬件設計 155
11.6 RTC實驗軟件設計 155
11.7 RTC實驗示例程序分析及仿真 156
11.7.1 RTC初始化函數 156
11.7.2 RTC設置及顯示時間函數 157
11.7.3 RTC實驗main函數 158
11.7.4 RTC實驗測試結果 158
11.8 本章課后作業 158
第12章 DMA模塊實驗 159
12.1 學習目的 159
12.2 DMA模塊 159
12.3 STM32F1 DMA模塊 159
12.3.1 STM32F1 DMA模塊的主要特性 159
12.3.2 STM32F1 DMA模塊的結構 160
12.3.3 STM32F1 DMA模塊的功能 160
12.3.4 STM32F1 DMA模塊相關庫函數 162
12.4 DMA模塊實驗硬件設計 166
12.5 DMA模塊實驗軟件設計 166
12.6 DMA模塊實驗示例程序分析及仿真 166
12.6.1 DMA模塊初始化函數 166
12.6.2 DMA模塊啟動發送函數 167
12.6.3 DMA模塊實驗main函數 167
12.6.4 DMA模塊實驗測試結果 168
12.7 本章課后作業 168
第13章 ADC實驗 169
13.1 學習目的 169
13.2 通用ADC介紹 169
13.2.1 ADC概述 169
13.2.2 ADC的工作原理 169
13.3 STM32F1 ADC功能 170
13.3.1 STM32F1 ADC概述 170
13.3.2 STM32F1 ADC的特征 171
13.3.3 STM32F1 ADC的結構 171
13.3.4 STM32F1 ADC的開關控制 171
13.3.5 STM32F1 ADC的時鐘配置 171
13.3.6 STM32F1 ADC的通道選擇 172
13.3.7 STM32F1 ADC的轉換模式 173
13.3.8 STM32F1 ADC的轉換時序 173
13.3.9 STM32F1 ADC的掃描模式 174
13.3.10 STM32F1 ADC的間斷模式 174
13.3.11 STM32F1 ADC的數據對齊方式 175
13.3.12 STM32F1 ADC的采樣時間 175
13.3.13 STM32F1 ADC的中斷 175
13.3.14 STM32F1 ADC的DMA請求 176
13.3.15 STM32F1 ADC相關庫函數 176
13.4 ADC實驗硬件設計 182
13.5 ADC實驗軟件設計 182
13.6 ADC實驗示例程序分析及仿真 182
13.6.1 ADC初始化函數 183
13.6.2 ADC轉換函數 184
13.6.3 ADC實驗main函數 184
13.6.4 ADC實驗測試結果 185
13.7 本章課后作業 185
第14章 DAC實驗 186
14.1 學習目的 186
14.2 通用DAC 186
14.2.1 DAC的工作原理 186
14.2.2 DAC的類型 187
14.3 STM32F1 DAC功能 187
14.3.1 STM32F1 DAC簡介 187
14.3.2 STM32F1 DAC的主要特征 187
14.3.3 STM32F1 DAC的結構 188
14.3.4 STM32F1 DAC通道使能 188
14.3.5 STM32F1 DAC輸出緩存 189
14.3.6 STM32F1 DAC數據格式 189
14.3.7 STM32F1 DAC轉換使能 189
14.3.8 STM32F1 DAC觸發方式 189
14.3.9 STM32F1 DAC DMA請求 190
14.3.10 STM32F1 DAC相關庫函數介紹 190
14.4 DAC實驗硬件設計 192
14.5 DAC實驗軟件設計 192
14.6 DAC實驗示例程序分析及仿真 192
14.6.1 DAC初始化函數 192
14.6.2 DAC輸出值設置函數 194
14.6.3 DAC實驗main函數 194
14.6.4 DAC實驗測試結果 195
14.7 本章課后作業 195
第15章 I2C總線實驗 196
15.1 學習目的 196
15.2 I2C總線知識 196
15.2.1 I2C總線物理拓撲結構 196
15.2.2 I2C總線特征 197
15.3 I2C總線協議 197
15.3.1 I2C總線基本時序 197
15.3.2 I2C總線數據傳輸時序 197
15.3.3 I2C器件尋址通信時序 198
15.3.4 I2C總線的操作 198
15.4 I2C總線時序編程 199
15.4.1 I2C總線起始條件 199
15.4.2 I2C總線停止條件 199
15.4.3 I2C總線發送應答信號或非應答信號 200
15.4.4 I2C總線檢測應答信號或非應答信號 200
15.4.5 I2C總線發送數據 200
15.4.6 I2C總線接收數據 201
15.5 AT24C02編程 201
15.5.1 AT24C02基本功能介紹 201
15.5.2 AT24C02寫時序 202
15.5.3 AT24C02讀時序 203
15.6 I2C總線模擬時序實驗硬件設計 203
15.7 I2C總線模擬時序實驗軟件設計 204
15.8 I2C總線模擬時序實驗示例程序分析及仿真 204
15.8.1 AT24C02單字節寫函數 204
15.8.2 AT24C02單字節讀函數 205
15.8.3 I2C總線實驗main函數 205
15.8.4 I2C總線模擬時序實驗測試結果 206
15.9 本章課后作業 206
第16章 SPI總線實驗 207
16.1 學習目的 207
16.2 通用SPI總線 207
16.2.1 SPI總線協議簡介 207
16.2.2 SPI總線的物理拓撲結構 207
16.2.3 SPI總線的通信原理 208
16.3 STM32F1 SPI模塊 208
16.3.1 STM32F1 SPI模塊簡介 208
16.3.2 STM32F1 SPI模塊的主要特性 209
16.3.3 STM32F1 SPI模塊的結構 209
16.3.4 STM32F1 SPI模塊的時序 211
16.3.5 STM32F1 SPI模塊的數據發送與接收 212
16.3.6 STM32F1 SPI模塊相關庫函數 212
16.4 W25Q64 215
16.4.1 W25Q64的基本功能 215
16.4.2 W25Q64的指令 215
16.4.3 W25Q64的頁編程時序 216
16.4.4 W25Q64的讀數據時序 217
16.4.5 W25Q64的扇區擦除時序 217
16.5 SPI總線實驗硬件設計 218
16.6 SPI總線實驗軟件設計 218
16.7 SPI總線實驗示例程序分析及仿真 219
16.7.1 SPI2模塊的初始化函數 219
16.7.2 SPI2模塊的數據發送/接收函數 219
16.7.3 W25Q64的寫數據函數 220
16.7.4 W25Q64的讀數據函數 220
16.7.5 SPI總線實驗測試結果 221
16.8 本章課后作業 221
第17章 TFT LCD屏實驗 222
17.1 學習目的 222
17.2 LCD屏 222
17.2.1 常見的顯示設備 222
17.2.2 常見的彩色顯示屏類別 222
17.2.3 LCD系統 224
17.2.4 LCD屏的主要參數 224
17.3 TFT LCD屏的工作原理 225
17.3.1 并行通信總線協議簡介 225
17.3.2 ILI9486 225
17.3.3 取模軟件應用 228
17.4 TFT LCD屏實驗硬件設計 229
17.5 TFT LCD屏實驗軟件設計 229
17.6 TFT LCD屏實驗示例程序分析及仿真 230
17.6.1 TFT LCD屏畫點函數 230
17.6.2 TFT LCD屏顯示字符函數 230
17.6.3 TFT LCD屏實驗測試結果 231
17.7 本章課后作業 231
第18章 觸摸屏實驗 232
18.1 學習目的 232
18.2 觸摸屏 232
18.2.1 觸摸屏的分類 232
18.2.2 電阻式觸摸屏的工作原理 232
18.2.3 電阻式觸摸屏的校準原理 233
18.2.4 電阻式觸摸屏的校準算法 234
18.2.5 XPT2046 235
18.3 觸摸屏實驗硬件設計 237
18.4 觸摸屏實驗軟件設計 237
18.5 觸摸屏實驗示例程序分析及仿真 238
18.5.1 觸摸屏SPI數據發送函數 238
18.5.2 觸摸屏SPI數據接收函數 239
18.5.3 觸摸屏校準函數 239
18.5.4 觸摸屏實驗測試結果 241
18.6 本章課后作業 241
第19章 FSMC實驗 242
19.1 學習目的 242
19.2 FSMC概述 242
19.2.1 FSMC簡介 242
19.2.2 FSMC結構 242
19.2.3 FSMC 映射地址空間 243
19.2.4 NOR閃存和PSRAM控制器的時序 245
19.2.5 NOR閃存和PSRAM控制器庫函數介紹 246
19.3 FSMC實驗硬件設計 247
19.4 FSMC實驗軟件設計 247
19.5 FSMC實驗示例程序分析及仿真 248
19.5.1 FSMC初始化函數 248
19.5.2 FSMC實驗main函數 249
19.6 本章課后作業 250
第20章 SDIO總線實驗 251
20.1 學習目的 251
20.2 SDIO總線概述 251
20.2.1 SDIO總線簡介 251
20.2.2 SDIO總線的信號 251
20.2.3 SDIO總線的指令 252
20.3 STM32F1 SDIO總線概述 253
20.3.1 STM32F1 SDIO總線的特性 253
20.3.2 STM32F1 SDIO總線的功能 253
20.3.3 STM32F1 SDIO總線的指令和響應 254
20.3.4 STM32F1 SDIO卡的指令 256
20.3.5 STM32F1 SDIO總線的數據傳輸方式 257
20.3.6 STM32F1 SDIO總線相關庫函數 258
20.4 SDIO總線實驗硬件設計 262
20.5 SDIO總線實驗軟件設計 262
20.6 SDIO總線實驗示例程序分析及仿真 264
20.6.1 SD卡初始化函數 264
20.6.2 SD卡讀數據函數 265
20.6.3 SD卡寫數據函數 266
20.6.4 SDIO總線實驗測試結果 266
20.7 本章課后作業 267
第21章 CAN總線實驗 268
21.1 學習目的 268
21.2 CAN總線概述 268
21.2.1 CAN總線簡介 268
21.2.2 CAN總線的主要特性 269
21.2.3 CAN總線的分層結構 269
21.2.4 CAN總線物理層的定義 270
21.2.5 CAN總線的數據幀格式 271
21.2.6 CAN總線的仲裁機制 272
21.2.7 CAN總線的錯誤檢測機制 272
21.2.8 CAN總線的位時序特性 273
21.2.9 CAN總線的同步機制 274
21.3 bxCAN 275
21.3.1 bxCAN的主要特點 275
21.3.2 bxCAN的功能描述 276
21.3.3 bxCAN的工作模式 277
21.3.4 bxCAN的測試模式 277
21.3.5 bxCAN的位時間特性 278
21.3.6 bxCAN的報文過濾 279
21.3.7 bxCAN相關庫函數 279
21.4 CAN總線實驗硬件設計 284
21.5 CAN總線實驗軟件設計 284
21.6 CAN總線實驗示例程序分析及仿真 285
21.6.1 CAN發送數據函數 285
21.6.2 CAN接收數據函數 285
21.6.3 CAN總線實驗測試結果 286
21.7 本章課后作業 286
第22章 USB實驗 287
22.1 學習目的 287
22.2 USB概述 287
22.2.1 USB簡介 287
22.2.2 USB版本 287
22.2.3 USB優點 288
22.2.4 USB系統 288
22.2.5 USB數據流 289
22.3 STM32F1 USB模塊 289
22.3.1 STM32F1 USB模塊特點 289
22.3.2 STM32F1 USB模塊的結構 290
22.3.3 STM32F1 USB模塊的功能 290
22.3.4 STM32F1 USB模塊相關庫函數 292
22.3.5 USB實驗硬件設計 292
22.3.6 USB實驗軟件設計 293
22.3.7 USB實驗測試結果 294
22.4 本章課后作業 295
第23章 項目實踐 296
23.1 學習目的 296
23.2 項目相關知識 296
23.2.1 項目的定義及特點 296
23.2.2 項目評估標準 296
23.3 項目流程 296
23.3.1 項目規劃 297
23.3.2 項目軟件開發 297
23.3.3 項目硬件開發 297
23.3.4 項目文檔的編寫 298
23.4 基于STM32的藍牙熱敏打印機項目實踐 298
23.4.1 項目特點 299
23.4.2 項目需要的工具及軟件 299
23.4.3 熱敏打印機的打印頭性能 299
23.4.4 字庫的原理與應用 304
23.4.5 藍牙技術概述與應用 309
23.4.6 藍牙熱敏打印機硬件設計 313
23.4.7 藍牙熱敏打印機軟件設計 313
23.4.8 項目實踐測試結果 313
23.5 本章課后作業 313
參考文獻 314
展開全部
嵌入式Cortex-M3基礎與項目實踐 作者簡介
張葉茂,副教授、高級工程師,南寧職業技術學院智能制造學院副院長、南寧市高層次人才。獲廣西教學成果獎一等獎1項、二等獎2項;主持省部級以上課題3項,主持完成市廳級以上課題7項,主持完成智能產品開發與應用專業廣西現代學徒制試點建設。近5年來,獲省級教學能力大賽一等獎1項;授權專利20項;指導學生參加各類技能競賽、大學生電子設計競賽獲得國家級獎勵4次、省級以上獎勵10余次,并被授予廣西優秀指導教師稱號;主編出版了《基于ARM Cortex-M3的STM32微控制器實戰教程(第二版))》《C語言程序設計實用教程》《μCOS嵌入式操作系統原理與應用》等教材。