相關主題
商品描述
本書以 STM32CubeIDE、STM32CubeMX+MDK Keil 兩種開發平臺為例,介紹 STM32F407 芯片的系統功能和常用外設的編程開發方法,內容包括 STM32 軟硬件開發基礎、GPIO、外部中斷、串行通信、定時器、LCD、PWM 輸出、ADC 等。本書編寫力求通俗易懂,針對職業教育特點,采用“項目導向、任務驅動”教學模式構建內容體系, 全書由 4 個項目共 13 個任務構成,主要包括開發平臺的搭建、軟件的使用、基於 HAL 庫的 STM32 工程創建和 STM32F4 系統時鐘、GPIO 的配置,並基於 STM32F407 開發板實施 LED 控制設計、三人搶答器設計和智能調光燈設計等。書中融入了大量互動式學習內容,讀者可以掃描書中的二維碼獲得開發代碼及解決問題的思路等。本書附有完整的開發代碼、PPT 課件及思考練習答案,讀者可登錄華信教育資源網註冊後免費下載。
目錄大綱
項目 1 搭建 STM32 開發環境 1
任務 1.1 認識 STM32F4 開發板 2
任務描述 2
任務學習 2
1.1.1 初識 STM32 2
1.1.2 認識 STM32F407 芯片 3
1.1.3 認識 STM32F4 開發板 8
任務實施 9
步驟 1:搜集芯片數據手冊及開發板的相關資料 9
步驟 2:查找 STM32F4 開發板的連接外設的引腳 9
任務 1.2 安裝 STM32 開發軟件 10
任務描述 10
任務學習 11
1.2.1 STM32 的開發方式 11
1.2.2 STM32 的開發軟件 11
任務實施 12
步驟 1:檢查 Java 運行環境 12
步驟 2:安裝 CubeIDE 軟件 13
步驟 3:安裝 CubeMX 軟件及固件包 14
步驟 4:安裝 Keil MDK 軟件及固件包 16
任務 1.3 創建 STM32 工程 19
任務描述 19
任務學習 19
1.3.1 認識主要項目文件及 CMSIS 標準 19
1.3.2 LED 的硬件電路及其 GPIO 配置 21
任務實施 1:CubeMX 軟件工程配置 22
步驟 1:選芯片新建工程,認識軟件界面 22
步驟 2:配置系統時鐘 24
步驟 3:配置 GPIO 27
步驟 4:生成初始化代碼 28
任務實施 2:在 Keil MDK 軟件中編寫控制 LED 的代碼 30
步驟 1:認識 Keil MDK 軟件界面,設置輸出 hex 文件 30
步驟 2:Keil MDK 軟件的幾個設置技巧 32
步驟 3:編寫控制 LED 閃爍的代碼 34
任務實施 3:使用 CubeIDE 配置工程,編寫代碼 35
步驟 1:創建 STM32 工程 35
步驟 2:配置系統時鐘和 GPIO 38
步驟 3:生成初始化代碼,認識編輯界面 38
步驟 4:編寫控制 LED 亮滅的代碼 43
步驟 5:設置輸出 hex 文件 43
任務 1.4 程序下載與調試 44
任務描述 44
任務學習 44
1.4.1 STM32F4 的程序下載方式 44
1.4.2 開發板的串口一鍵下載電路 45
任務實施 46
步驟 1:安裝 CH340 串口驅動程序 46
步驟 2:使用 FlyMcu 軟件實現串口下載 47
步驟 3:安裝 ST-LINK 驅動程序 48
步驟 4:在 Keil MDK 軟件中使用 ST-LINK 下載程序 50
步驟 5:在 CubeIDE 軟件中使用 ST-LINK 下載程序 52
拓展訓練:聲光報警器設計 53
項目評價 55
思考練習 55
項目 2 LED 控制設計 57
任務 2.1 8 位跑馬燈設計 58
任務描述 58
任務學習 58
2.1.1 STM32F4 的時鐘系統及其初始化函數 58
2.1.2 STM32F4 的 GPIO 及其配置 61
2.1.3 GPIO 相關的 API 函數 64
任務實施 66
步驟 1:8 位跑馬燈硬件電路設計 66
步驟 2:CubeMX 工程配置 67
步驟 3:查看和分析項目初始化配置代碼 68
步驟 4:編寫 LED 控制函數 70
步驟 5:上板驗證跑馬燈功能 72
拓展訓練:循環點亮 RGB 燈 73
任務 2.2 按鍵控制 LED 設計 74
任務描述 74
任務學習 75
2.2.1 按鍵工作原理 75
2.2.2 獨立按鍵輸入檢測函數設計 76
任務實施 77
步驟 1:硬件電路設計 77
步驟 2:CubeMX 工程配置 78
步驟 3:創建外設驅動文件,添加文件路徑 79
步驟 4:編寫按鍵檢測函數及 LED 宏函數 85
步驟 5:實現按鍵控制 LED 設計 87
拓展訓練:按鍵控制 RGB 燈 88
任務 2.3 串口控制 LED 設計 88
任務描述 88
任務學習 89
2.3.1 串行通信概述 89
2.3.2 異步串行通信協議 90
2.3.3 串口操作的 HAL 庫相關函數 92
技能訓練 1:串口發送信息 92
步驟 1:硬件電路設計 92
步驟 2:串口 CubeMX 工程配置 93
步驟 3:復制外設驅動文件,添加文件路徑 96
步驟 4:分析串行通信配置代碼 97
步驟 5:添加串口重定向代碼 98
步驟 6:實現串口發送功能 99
技能訓練 2:串口發送及接收信息 100
步驟 1:復制串口通信工程 100
步驟 2:編寫串口接收信息功能代碼 101
步驟 3:下載調試串口發送及接收信息功能 103
任務實施 103
步驟 1:編寫串口控制 LED 代碼 103
步驟 2:下載程序並測試串口控制 LED 功能 104
拓展訓練:串口控制 RGB 燈 105
項目評價 106
思考練習 106
項目 3 三人搶答器設計 108
任務 3.1 三人搶答器按鍵模塊設計 109
任務描述 109
任務學習 109
3.1.1 中斷概述 109
3.1.2 NVIC 中斷優先級 111
3.1.3 EXTI 外部中斷 111
3.1.4 EXTI 相關 HAL 函數 113
任務實施 113
步驟 1:外部中斷按鍵引腳配置 113
步驟 2:CubeMX 工程配置 114
步驟 3:外部中斷按鍵代碼設計 115
拓展訓練 1:給三人搶答器添加三個選手指示燈 117
拓展訓練 2:通過外部中斷方式實現按鍵控制 RGB 燈 118
任務 3.2 三人搶答器限時搶答設計 118
任務描述 118
任務學習 119
3.2.1 STM32 定時器概述 119
3.2.2 通用定時器 121
3.2.3 基本定時器 123
3.2.4 定時器的 HAL 驅動函數 124
技能訓練:通用定時器設計 125
步驟 1:通用定時器參數計算 125
步驟 2:通用定時器 CubeMX 工程配置 125
步驟 3:實現通用定時器控制 LED 閃爍 128
任務實施 129
步驟 1:基本定時器參數計算 129
步驟 2:基本定時器 CubeMX 工程配置 129
步驟 3:限時搶答代碼設計及浮點數輸出 130
任務 3.3 三人搶答器顯示界面設計 134
任務描述 134
任務學習 134
3.3.1 TFTLCD 概述 134
3.3.2 FSMC 簡介 136
技能訓練:TFTLCD 顯示 139
步驟 1:連接 TFTLCD 硬件電路 140
步驟 2:TFTLCD 的 CubeMX 工程配置 141
步驟 3:分析代碼,移植 LCD 驅動文件 142
步驟 4:編寫 TFTLCD 顯示代碼 148
任務實施 149
步驟 1:復制工程 149
步驟 2:編寫代碼 149
拓展訓練 1:在 TFTLCD 上顯示自己設計的 LOGO 151
拓展訓練 2:添加 48 號字體在 LCD 顯示 152
項目整體實施 153
步驟 1:三人搶答器工程配置 153
步驟 2:移植三人搶答器顯示界面代碼 154
步驟 3:下載程序,檢測三人搶答器整體功能 155
項目評價 155
思考練習 156
項目 4 智能調光燈設計 157
任務 4.1 調光燈手動模式設計 158
任務描述 158
任務學習 158
4.1.1 PWM 工作原理 158
4.1.2 PWM 相關的 HAL 函數 160
任務實施 161
步驟 1:PWM 參數計算 161
步驟 2:PWM 的 CubeMX 工程配置 161
步驟 3:實現按鍵調光燈設計 163
拓展訓練:使用 USB_LED 設計按鍵調光燈 165
任務 4.2 調光燈自動模式設計 167
任務描述 167
任務學習 168
4.2.1 STM32F4 的 ADC 168
4.2.2 光敏傳感器 170
技能訓練:光敏傳感器及 ADC 檢測 171
步驟 1:硬件電路設計 171
步驟 2:ADC 的 CubeMX 工程配置 172
步驟 3:編寫光敏傳感器實現代碼 173
任務實施 176
步驟 1:配置工程,編寫 ADC 代碼 176
步驟 2:編寫主函數代碼 176
步驟 3:下載程序,測試功能 178
任務 4.3 漢字及圖片的 LCD 界面設計 178
任務描述 178
任務學習 179
4.3.1 漢字顯示原理 179
4.3.2 圖片顯示格式 180
技能訓練 1:漢字顯示設計 181
步驟 1:通過 PCtoLCD 2002 軟件進行漢字取模 181
步驟 2:編寫顯示漢字的應用函數 182
步驟 3:編寫漢字顯示代碼 183
技能訓練 2:圖片顯示設計 183
步驟 1:添加圖片顯示驅動文件 183
步驟 2:通過 Image2Lcd 軟件進行圖片取模 184
步驟 3:編寫代碼實現圖片顯示 185
任務實施 185
步驟 1:對 ASCII 碼取模 48 號字符集 185
步驟 2:在主函數中編寫智能調光燈 LCD 顯示的代碼 185
項目整體實施 187
步驟 1:復制工程,移植 LCD 文件 188
步驟 2:添加漢字及圖片的 LCD 界面設計相關代碼 188
步驟 3:上板測試 189
項目評價 189
思考練習 190
附錄 A 開發板部分電路原理圖 191
參考文獻 194