相關主題
商品描述
本書基於南京沁恒微電子股份有限公司(WCH)的RSIC-V內核的CH32V307芯片為核心展開講解,按照嵌入式技術遞進順序,以項目方式依次展開,包括簡易音樂播放器、4*4彩色LED點陣顯示、RT-Thread實時操作系統應用、基於RT-Thread和LVGL的TFT顯示、車輛避障檢測、智能家居的本地系統設計、智能家居的遠程監控設計等7個項目,涵蓋了RISC-V嵌入式技術的基礎知識以及嵌入式應用開發的基本內容。
目錄大綱
目 錄
項目1 簡易音樂播放器 1
1.1 嵌入式系統概述 1
1.2 RISC-V概述 2
1.2.1 RISC-V的由來 2
1.2.2 RISC-V的發展 3
1.2.3 RISC-V在中國的發展 3
1.2.4 RISC-V對比X86、ARM架構 4
1.3 CH32V307芯片 4
1.3.1 青稞系列微處理器 4
1.3.2 CH32V307 5
1.4 軟件開發環境 6
1.4.1 MounRiver Studio 6
1.4.2 WCHISP軟件 7
1.4.3 開發固件庫 8
1.5 軟件工程模板 10
1.5.1 軟件工程模板的創建 10
1.5.2 工程模板用戶代碼 13
1.6 項目使用的CH32V307外設模塊 15
1.6.1 CH32V307的GPIO 15
1.6.2 CH32V307的定時器 18
1.7 蜂鳴器硬件電路 23
1.8 簡易音樂播放器 23
1.8.1 項目目標 23
1.8.2 工程移植 24
1.8.3 蜂鳴器IO驅動 24
1.8.4 蜂鳴器PWM驅動 26
1.8.5 簡易音樂播放 29
1.8.6 簡易音樂播放器主函數 31
1.9 程序下載及調試信息打印 32
本章小結 36
考核習題 37
項目2 4×4彩色LED點陣顯示 38
2.1 4×4彩色LED點陣顯示項目工程移植 38
2.2 GPIO輸入功能 39
2.2.1 CH32V307的GPIO輸入 39
2.2.2 按鍵KEY1、KEY2輸入檢測 39
2.3 USART串行通信 42
2.3.1 USART串行通信原理 43
2.3.2 USART中斷 44
2.3.3 CH32V307的USART接口 45
2.3.4 CH32V307的USART固件庫 46
2.3.5 CH32V307的USART軟件驅動 47
2.4 WS2812C彩色LED 53
2.4.1 WS2812C主要特點 53
2.4.2 WS2812C引腳功能 54
2.4.3 WS2812C控制協議 54
2.4.4 4×4彩色LED點陣硬件原理 55
2.4.5 4×4彩色LED點陣的軟件驅動 56
2.5 4×4彩色LED點陣顯示項目 62
本章小結 67
考核習題 68
項目3 RT-Thread實時操作系統應用 69
3.1 無操作系統 69
3.2 嵌入式操作系統 70
3.2.1 嵌入式操作系統概述 70
3.2.2 嵌入式操作系統的發展 70
3.2.3 嵌入式操作系統的分類 71
3.2.4 主流嵌入式實時操作系統 72
3.3 RT-Thread實時操作系統 73
3.3.1 RT-Thread概述 73
3.3.2 RT-Thread功能特點 74
3.3.3 RT-Thread應用場景 74
3.3.4 RT-Thread技術架構 75
3.4 RT-Thread技術應用 76
3.4.1 線程與任務 76
3.4.2 同步與互斥 80
3.4.3 線程間通信 83
3.4.4 內存管理 87
3.4.5 雙向鏈表 89
3.4.6 設備管理 91
3.5 RT-Thread移植到CH32V307 93
本章小結 100
考核習題 101
項目4 基於RT-Thread和LVGL的TFT屏顯示 102
4.1 I2C總線通信 102
4.1.1 I2C總線介紹 102
4.1.2 I2C總線典型接線原理 103
4.1.3 I2C總線通信原理 104
4.1.4 CH32V307的I2C接口 107
4.1.5 CH32V307的I2C固件庫 108
4.1.6 CH32V307的I2C通信驅動 109
4.2 板載4.3寸TFT屏 123
4.2.1 4.3寸TFT屏簡介 123
4.2.2 TFT屏硬件原理 124
4.2.3 TFT屏顯示驅動 126
4.2.4 TFT屏觸摸驅動 131
4.3 嵌入式GUI框架:LVGL 140
4.3.1 嵌入式GUI框架 140
4.3.2 LVGL概述 140
4.3.3 LVGL特性 141
4.3.4 LVGL應用場景 141
4.3.5 LVGL最低配置 142
4.4 基於RT-Thread的LVGL框架 142
4.4.1 LVGL源碼 142
4.4.2 LVGL源碼移植 143
4.5 GUI Guider 153
4.5.1 GUI Guider概述 154
4.5.2 GUI Guider安裝 154
4.5.3 GUI Guider快速使用 155
4.5.4 應用到TFT屏的LVGL工程中 159
4.6 基於LVGL的GUI Guider控件設計 165
4.6.1 Label(標簽) 165
4.6.2 Text(文本框) 167
4.6.3 Button(按鈕) 170
4.6.4 頁面添加 174
4.6.5 下拉列表 176
4.6.6 滑動條 178
4.6.7 Image(圖像) 179
4.6.8 LVGL基礎控件移植到CH32V307平臺中 181
4.6.9 CH32V307平臺GUI字體配置 183
本章小結 187
考核習題 188
項目5 車輛避障檢測 189
5.1 常用的嵌入式測距方案 189
5.2 超聲波測距 190
5.2.1 超聲波 190
5.2.2 超聲波測距原理 190
5.3 超聲波傳感器CS100A 191
5.3.1 CS100A超聲波傳感器芯片介紹 191
5.3.2 CS100A硬件電路 191
5.3.3 CS100A工作原理 192
5.4 CS100A超聲波測距驅動 193
5.4.1 工程移植 193
5.4.2 定時器模塊修改 193
5.4.3 CS100A初始化 196
5.4.4 CS100A超聲波測距中斷 197
5.4.5 CS100A超聲波測距 198
5.5 車輛避障模擬系統 199
5.5.1 GUI設計 199
5.5.2 創建超聲波測距任務 204
5.5.3 修改GUI圓弧初始屬性 208
5.5.4 創建LVGL互斥量 210
5.5.5 啟停按鈕“Clicked”事件 211
5.5.6 超聲波測距任務 214
5.5.7 車輛避障模擬系統GUI顯示 224
本章小結 224
考核習題 225
項目6 智能家居本地系統設計 226
6.1 AP3216C環境傳感器 226
6.1.1 AP3216C環境傳感器介紹 226
6.1.2 AP3216C硬件原理 227
6.1.3 AP3216C讀寫時序 227
6.2 AP3216C數據讀取驅動 228
6.2.1 工程移植 228
6.2.2 AP3216C的寄存器 228
6.2.3 AP3216C初始化 229
6.2.4 讀取AP3216C數據 230
6.3 AHT20溫濕度傳感器 232
6.3.1 AHT20溫濕度傳感器介紹 232
6.3.2 AHT20硬件原理 232
6.4 溫濕度數據讀取驅動 233
6.4.1 AHT20驅動文件添加 233
6.4.2 AHT20復位 233
6.4.3 AHT20校準 234
6.4.4 AHT20讀狀態 234
6.4.5 AHT20初始化 235
6.4.6 讀AHT20溫濕度數據 236
6.5 電機簡介 240
6.5.1 電機分類 240
6.5.2 電機工作原理 241
6.5.3 電機應用領域 241
6.6 DRV8833 241
6.6.1 DRV8833電機驅動芯片介紹 241
6.6.2 DRV8833電機驅動芯片硬件原理 242
6.7 電機控制驅動 243
6.7.1 DRV8833驅動控制邏輯 243
6.7.2 電機驅動文件添加 243
6.7.3 電機模塊初始化 243
6.7.4 電機控制 245
6.8 智能家居本地系統設計 247
6.8.1 GUI設計 247
6.8.2 創建智能家居本地任務 255
6.8.3 創建相關全局變量 257
6.8.4 修改“event”事件 259
6.8.5 智能家居本地任務 263
6.8.6 智能家居本地系統GUI顯示 270
本章小結 271
考核習題 273
項目7 智能家居的遠程監控系統設計 274
7.1 藍牙通信技術 274
7.1.1 工作原理 274
7.1.2 技術特點 274
7.1.3 技術版本 275
7.1.4 主要應用場景 275
7.2 CH9141藍牙模塊 275
7.2.1 CH9141藍牙模塊介紹 275
7.2.2 CH9141通信模組硬件原理 277
7.3 CH9141通信驅動 278
7.3.1 工程移植 278
7.3.2 CH9141初始化 278
7.3.3 CH9141接收中斷 280
7.3.4 CH9141數據發送 281
7.3.5 CH9141數據接收 282
7.4 JSON格式數據通信 284
7.4.1 JSON格式簡介 285
7.4.2 cJSON庫簡介 285
7.4.3 cJSON庫的使用 286
7.4.4 智能家居JSON通信協議與實現 287
7.5 Android App開發基礎 301
7.5.1 Android系統 301
7.5.2 Java程序設計語言 301
7.5.3 Android Studio開發環境 303
7.5.4 Android App開發 304
7.6 智能家居遠程監控系統設計 306
7.6.1 CH32V307智能家居遠程任務 306
7.6.2 Android App設計 312
本章小結 334
考核習題 336
