嵌入式系統綜合設計:基於STM32系列微控制器

王真星

  • 出版商: 電子工業
  • 出版日期: 2025-09-01
  • 售價: $474
  • 語言: 簡體中文
  • 頁數: 296
  • ISBN: 7121513692
  • ISBN-13: 9787121513695
  • 相關分類: STM32
  • 下單後立即進貨 (約4週~6週)

相關主題

商品描述

本書以STM32系列微控制器為核心,通過超聲波霧化器、鹽度計、糖度檢測儀、太陽能燈、物聯網音樂時鐘、OCR智能相機、電動汽車EPB系統等7大綜合項目,全面解析嵌入式系統開發的全流程。從GPIO、ADC、傳感器驅動到CAN總線、FreeRTOS、圖像壓縮傳輸等關鍵技術,書中均提供詳實的硬件設計思路與代碼實現。特別適合有一定基礎的開發者深入實戰,同時兼顧高校學生與愛好者入門提升。每個案例均源自實際產品需求,融合物聯網、汽車電子等熱門領域,助你快速掌握嵌入式系統設計的核心技能,突破技術瓶頸。

目錄大綱

目錄

第1章 嵌入式系統開發基礎 1
1.1 基本概念 1
1.1.1 什麼是嵌入式系統 1
1.1.2 什麼是嵌入式系統設計 4
1.1.3 固件和嵌入式軟件 5
1.1.4 嵌入式軟件的開發調試流程 7
1.1.5 FPGA設計 7
1.2 GPIO 8
1.3 最簡單的設計:八段數碼管顯示 10
1.4 模擬信號的處理 14
1.4.1 利用運算放大器處理模擬信號 14
1.4.2 利用ADC處理模擬信號 17
1.4.3 利用模擬開關處理模擬信號 18
1.5 數字電位器 19
1.6 電子產品設計的特點 20

第2章 超聲波霧化器的開發 22
2.1 技術需求 23
2.2 硬件設計 24
2.2.1 硬件選型 24
2.2.2 超聲波霧化器硬件設計 25
2.3 軟件設計 28
2.4 本章小結 32

第3章 便攜式鹽度計的開發 33
3.1 便攜式鹽度計簡介 33
3.2 設計思路 34
3.3 檢測原理 35
3.4 硬件設計 36
3.4.1 LCD設計 38
3.4.2 HT1621的內部RAM 40
3.4.3 液晶驅動程序設計 42
3.5 便攜式鹽度計電路原理圖設計 46
3.5.1 電源、檢測和微控制器部分 46
3.5.2 按鈕消抖 48
3.5.3 主程序 50
3.5.4 主程序代碼 51
3.6 本章小結 74

第4章 糖度檢測儀的開發 75
4.1 檢測原理 75
4.2 主流程設計 76
4.3 算法設計與數據處理 78
4.3.1 檢測數據的處理 78
4.3.2 明暗分界線的確定 80
4.3.3 數據濾波 82
4.3.4 算法設計 83
4.3.5 獲取明暗交界線位置 83
4.3.6 糖度和位置關系的確定 85
4.3.7 誤差和精度 86
4.4 硬件設計 86
4.5 軟件設計 88
4.5.1 GPIO初始化函數 88
4.5.2 ADC初始化函數 90
4.5.3 按鈕部分 93
4.5.4 主程序代碼 94
4.6 本章小結 107

第5章 手提式太陽能燈的開發 108
5.1 需求分析 109
5.1.1 太陽能燈I/O參數 109
5.1.2 充放電部分 109
5.1.3 照明部分 110
5.1.4 電池充電參數 110
5.1.5 保護功能 110
5.2 器件選型和方案的準備 111
5.2.1 微控制器的選型 111
5.2.2 升壓芯片選型 111
5.2.3 USB外設插入檢測 111
5.2.4 USB輸出的保護 112
5.2.5 LED照明部分設計 112
5.2.6 充電指示燈和電量指示燈設計 112
5.3 硬件設計 113
5.4 軟件設計 117
5.4.1 ADC濾波 117
5.4.2 電池管理 118
5.5 本章小結 127

第6章 物聯網智能音樂時鐘的開發 128
6.1 需求和方案的確定 128
6.1.1 產品功能定義 128
6.1.2 物聯網智能音樂時鐘的核心功能定位 130
6.1.3 芯片選型 131
6.1.4 顯示方案設計 133
6.2 硬件設計 142
6.2.1 微控制器部分 142
6.2.2 顯示部分 143
6.2.3 模擬音頻部分及電源 144
6.2.4 PCB設計 145
6.3 軟件設計 146
6.3.1 I/O口功能定義 146
6.3.2 用STM32CubeMX創建新的項目 147
6.3.3 引腳配置 148
6.3.4 A/D轉換配置 149
6.3.5 SPI芯片和串口配置 150
6.3.6 USB配置 151
6.3.7 外部中斷配置 151
6.3.8 SPI芯片的操作 151
6.3.9 顯示子程序 153
6.3.10 包含光標閃爍功能的顯示程序 154
6.3.11 專用動態掃描芯片的操作 156
6.3.12 單線串行外設編程 156
6.3.13 按鈕輸入處理 159
6.3.14 語音播報芯片的內容定義 165
6.3.15 數據格式定義 167
6.3.16 無線網絡數據接收處理 172
6.3.17 將數據保存到F6-58的內部Flash中 173
6.4 MP3音樂播放程序 176
6.5 GPS外設的操作 178
6.6 窄帶物聯網外設接口 181
6.6.1 物聯網部分的設計 181
6.6.2 基於M5311的窄帶物聯網 190
6.6.3 通信的測試過程 192
6.7 USB驅動設計 194
6.7.1 USB虛擬串口接收部分 194
6.7.2 基於custom_HID的USB驅動程序設計 196
6.8 物聯網智能音樂時鐘C#上位機程序設計 199
6.8.1 上位機通過USB和鬧鐘通信 199
6.8.2 USB事件處理 200
6.8.3 上位機通過Wi-Fi發送數據 205
6.8.4 數據包的定義 208
6.8.5 音樂播放文件的JSON格式 210
6.9 本章小結 211

第7章 OCR物聯網智能相機的開發 212
7.1 硬件方案選擇 213
7.2 硬件設計 213
7.3 電源和窄帶物聯網板程序的設計說明 219
7.4 主板程序設計 221
7.4.1 主板程序介紹 221
7.4.2 項目工程介紹 222
7.4.3 內存的分配 224
7.4.4 LCD的驅動 227
7.4.5 電容觸摸屏的驅動 227
7.4.6 電容觸摸屏讀取函數 228
7.4.7 電容觸摸屏控制器初始化函數和觸摸事件檢測函數 230
7.4.8 拍照處理 231
7.4.9 圖像的存儲 236
7.4.10 圖像的壓縮傳輸 238
7.4.11 將JPEG格式圖像編碼為Base64 238
7.4.12 發送前的手工測試 240
7.4.13 圖像的發送 241
7.4.14 FreeRTOS相關的編程 245
7.5 GUI的設計 248
7.5.1 MVP架構 249
7.5.2 LCD GUI的整體功能 249
7.5.3 圖像裁剪模塊中演示者層、視圖層與模型層的交互 251
7.6 本章小結 252

第8章 EPB系統的開發 253
8.1 功能需求 254
8.2 EPB系統硬件 255
8.2.1 電氣原理圖 255
8.2.2 EPB系統的硬件架構 255
8.2.3 EPB系統的主要工作參數 256
8.2.4 接插件的各項定義 256
8.3 CAN總線 257
8.3.1 CAN總線簡介 257
8.3.2 差分信號 258
8.3.3 CAN總線的數據幀 259
8.3.4 仲裁 260
8.3.5 CAN總線的信號傳輸 261
8.4 EPB系統的設備主程序 262
8.5 EPB系統的業務流程簡介 266
8.5.1 process函數的業務流程 266
8.5.2 靜態駐車功能 266
8.5.3 起步輔助和應急功能 269
8.5.4 自動駐車功能 270
8.6 CAN總線通信的處理 271
8.6.1 CAN總線的初始化 271
8.6.2 fdcan1_config函數的定義 273
8.6.3 配置過濾器 274
8.6.4 CAN總線發送數據的函數 277
8.6.5 CAN總線的接收中斷處理函數 278
8.6.6 CAN總線周期性發送數據的函數 279
8.7 基於C#的CAN總線測試程序 280
8.7.1 上位機CAN總線測試系統的初始化 280
8.7.2 發送數據幀 281
8.7.3 模擬汽車狀態發送 282
8.8 本章小結 286