內容簡介
《嵌入式系統設計——基於Cortex-M 處理器與RTOS 構建》系統地介紹了基於ARM Cortex體系的嵌入式系統設計,將單片機技術、RTOS概念、感測器套用、編程技巧和實用方法與實際工程開發技術在STM32F407硬體平台上很好地結合起來,使讀者通過本書的學習能迅速了解並掌握基於STM32的嵌入式系統設計方法和工程開發實用技術,為後續的深入學習和發展打下堅實的理論與實踐基礎。作者依據學習和實驗操作的規律與要求,並以提高學生的實際工程設計能力和自主創新能力為目的,合理編排全書內容。全書從內容上可分為8 個部分:ARM Cortex體系概述、硬體平台介紹、工具軟體介紹及使用方法、RTOS介紹、常見工程技術套用、檔案系統套用、低功耗設計套用以及綜合實踐。每章節安排了相應的實驗內容和擴展練習題。
圖書目錄
第1 章 基於Cortex-M 的嵌入式系統概述 1
1.1 嵌入式系統基本概念 1
1.1.1 嵌入式系統的構成要素 1
1.1.2 嵌入式系統的主要特點 3
1.2 ARM Cortex 系列體系結構 4
1.2.1 嵌入式處理器分類 4
1.2.2 嵌入式處理器核心Cortex 系列分類 5
1.3 ARM Cortex-M 各系列特點 5
1.4 STM32F407 結構簡介 7
1.5 實時作業系統RTOS 簡介 7
1.6 嵌入式系統在物聯網中的發展 9
習題 9
第2 章 Cortex-M 嵌入式硬體平台 11
2.1 硬體平台簡介 11
2.2 主要器件 12
2.3 主要功能模組 13
習題 16
第3 章 嵌入式開發工具與設計流程 17
3.1 STM32 開發工具 . 17
3.2 ARM Keil MDK 工具 18
3.3 STM32CubeMX 使用方法 22
3.3.1 STM32Cube 簡介 22
3.3.2 STM32CubeMX 軟體安裝 23
3.4 基於HAL 庫的程式設計流程 25
3.4.1 STM32 HAL 介紹 25
3.4.2 CubeMX 工程創建流程 28
3.5 第一個LED 點燈程式 30
實驗1 按鍵掃描與流水燈設計 39
習題 40
第4 章 FreeRTOS 作業系統 41
4.1 FreeRTOS 系統簡介 41
4.2 FreeRTOS 系統移植 42
4.3 多任務系統基本概念 45
4.3.1 任務及任務管理 45
4.3.2 優先權 48
4.3.3 訊息佇列 49
4.3.4 信號量 51
4.3.5 互斥量 54
4.3.6 事件 56
4.3.7 任務通知 58
4.3.8 記憶體管理 60
4.4 創建第一個RTOS 工程 63
4.4.1 CubeMX 工程配置 63
4.4.2 導出MDK 工程 66
4.4.3 編寫功能代碼 . 69
實驗2 多任務鍵盤與流水燈實驗 72
習題 72
第5 章 簡單外設套用 74
5.1 數碼管套用 74
5.2 按鍵與外部中斷 78
5.3 麥克風與ADC 套用 81
5.3.1 添加串口列印輸出 81
5.3.2 ADC 模組介紹 83
5.3.3 麥克風AD 採樣示例 85
5.4 單匯流排溫度感測器套用 89
5.5 IIC 接口陀螺儀感測器套用 92
實驗3 聲控延時亮燈實驗 95
實驗4 溫度報警與傾角監測實驗 96
習題 96
第6 章 串口通信套用 98
6.1 學習板虛擬串口概述 98
6.2 輪詢接收方式串口通信 102
6.3 中斷接收方式串口通信 104
6.3.1 串口接收中斷示例 104
6.3.2 DMA 空閒中斷示例 106
6.3.3 流水燈串口通信套用 107
6.4 使用SWO 調試 110
實驗5 簡單串口通信實驗 112
實驗6 數據採集與串口通信實驗 112
習題 113
第7 章 無線通信套用 114
7.1 藍牙HC05 通信模組介紹 114
7.1.1 HC05 藍牙模組用法介紹 115
7.1.2 HC05 藍牙模組AT 指令介紹 115
7.2 藍牙通信實踐 117
7.3 ESP8266WIFI 通信模組介紹 122
7.3.1 ESP01 模組用法介紹 123
7.3.2 ESP01 模組AT 指令介紹 123
7.4 WIFI 通信實踐 125
7.5 物聯網連線套用實踐 130
7.5.1 創建OneNET 平台設備 131
7.5.2 連線OneNET 平台 134
實驗7 藍牙手機遙控實驗 139
實驗8 數據採集及WIFI 通信實驗 139
習題 140
第8 章 GUI 顯示套用 141
8.1 OLED 套用介紹 141
8.1.1 單色IIC 接口OLED 介紹 141
8.1.2 OLED 顯示屏驅動程式介紹 142
8.1.3 GUISlim 圖形庫介紹 143
8.1.4 漢字點陣檔案介紹 144
8.2 OLED 套用實踐 148
8.3 MCU 接口LCD 介紹 152
8.4 LCD 套用實踐 154
8.4.1 emWin 圖形庫介紹 154
8.4.2 FSMC 匯流排配置 154
8.4.3 LCD 屏驅動移植接口 157
8.4.4 GUI 套用設計 163
實驗9 OLED 顯示屏數據曲線繪製實驗 169
實驗10 LCD 液晶屏GUI 設計實驗 169
習題 170
第9 章 定時器套用 . 171
9.1 STM32F4 定時器介紹 171
9.1.1 常規定時器 171
9.1.2 HAL 庫定時器套用方法 172
9.1.3 定時器基本概念介紹 174
9.2 定時器基本功能套用 174
9.3 PWM 輸出套用 179
9.4 信號捕捉套用 182
9.5 外部脈衝計數套用 187
實驗11 簡易鬧鈴設計實驗 191
實驗12 呼吸燈設計實驗 191
實驗13 簡易頻率計設計實驗 191
實驗14 簡單錄音機設計實驗 192
習題 192
第10 章 RTC 與低功耗套用 194
10.1 RTC 實時時鐘套用 194
10.2 STM32 低功耗模式介紹 200
10.3 STM32 低功耗套用 . 201
實驗15 基於RTC 的電子鐘設計 206
實驗16 低功耗待機與喚醒實驗 207
習題 207
第11 章 FatFs 檔案系統套用 208
11.1 FatFs 介紹 208
11.2 SPI FLASH 套用實踐 212
11.2.1 添加配置SPI 外設 212
11.2.2 添加SPI FLASH 驅動 214
11.2.3 SPI FLASH 直接讀寫操作實踐 215
11.2.4 SPI FLASH 檔案讀寫操作實踐 218
11.3 SD 卡套用實踐 222
11.3.1 添加配置SDIO 外設 222
11.3.2 SD 卡檔案讀寫操作實踐 224
11.4 U 盤掛載套用實踐 226
11.4.1 添加配置USB Host 組件 227
11.4.2 U 盤檔案讀寫操作實踐 228
實驗17 數據存儲實驗 230
實驗18 檔案傳輸實驗 231
習題 231
第12 章 STM32 IAP 程式設計 233
12.1 STM32 IAP 概念介紹 233
12.2 STM32 內部FLASH 介紹 234
12.3 STM32 內部FLASH 讀寫實踐 235
12.4 程式跳轉套用實踐 238
12.5 IAP 程式設計實踐 245
實驗19 串口IAP 設計實驗 253
實驗20 U 盤IAP 設計實驗 253
習題 254
第13 章 鴻蒙嵌入式系統移植 255
13.1 OpenHarmony 介紹 255
13.1.1 LiteOS-M 核心簡介 255
13.1.2 開發環境配置 256
13.2 OpenHarmony 系統移植 261
13.2.1 創建裸機工程 261
13.2.2 系統編譯構建移植 263
13.2.3 系統啟動過程適配 275
13.2.4 編譯及燒錄 277
13.3 OpenHarmony 套用開發示例 280
13.3.1 hello world 示例 280
13.3.2 流水燈示例 281
實驗21 OpenHarmony 系統移植實驗 283
習題 284
參考文獻 285