嵌入式技術及應用(STM32CubeMX版)

李文華

  • 出版商: 電子工業
  • 出版日期: 2023-09-01
  • 定價: $354
  • 售價: 8.5$301
  • 語言: 簡體中文
  • 頁數: 324
  • ISBN: 7121462087
  • ISBN-13: 9787121462085
  • 相關分類: 嵌入式系統STM32
  • 下單後立即進貨 (約4週~6週)

商品描述

本書採用STM32CubeMX的開發方式,選用20個基於STM32嵌入式技術開發的實例,按照“理論夠用,突出應用”的原則,採取項目化教學的方式,以作品製作為載體,在作品製作過程中講解STM32嵌入式技術的基礎知識、基本技能和方法,培養學生的愛崗敬業、耐心仔細、抗壓抗挫等優良品質和精神,由淺入深地講解STM32嵌入式技術應用,包括安裝開發工具、點亮LED燈、控制LED燈閃爍、製作跑馬燈、顯示按鍵的狀態、統計按鍵按下的次數、製作簡易秒錶、製作呼吸燈、用串口與電腦交換數據、用空閑中斷處理串口接收數據、製作用數碼管顯示的秒錶、用鍵盤控制秒錶的運行、用OLED屏顯示字符、用OLED屏顯示圖片、製作電壓監測器、製作電壓信號發生器、用硬件SPI口控制OLED屏、用硬件I2C接口訪問AT24C02、讀寫Flash存儲器、用RTC製作數字鐘以及C程序設計技巧。本書立足於應用實踐,融入了近年來全國職業技能大賽中有關STM32嵌入式應用技術的內容和1+X職業技能等級考試內容,適於用作高等職業院校物聯網、電子信息、智能產品設計、應用電子、機電一體化、機械電子、汽車電子等專業嵌入式技術應用課程的教材,也可作為應用型本科和1+X“傳感網應用開發”職業技能等級考試培訓教材或者供參加物聯網大賽和從事STM32嵌入式技術應用的工程技術人員學習和參考。

目錄大綱

項目1 搭建開發環境 1
學習目標 1
任務1 安裝開發工具 1
任務要求 1
知識儲備 2
1.STM32微控制器 2
2.STM32的軟件開發方式 4
實現方法與步驟 4
1.準備開發工具 4
2.解壓工具軟件 9
3.安裝MDK 10
4.安裝Keil包 13
5.激活MDK 15
6.安裝JRE 16
7.安裝STM32CubeMX 17
8.安裝STM32CubeMX庫 19
9.安裝CH340 驅動程序 22
10.查看USB口映射的串口號 23
11.安裝STLink驅動程序 24
12.安裝程序下載軟件 25
實踐總結與拓展 27
習題1 27
任務2 點亮LED燈 28
任務要求 28
知識儲備 28
1.初識GPIO口 28
2.STM32的時鐘源 29
3.STM32的程序啟動模式 30
4.STM32的程序調試模式 31
5.發光二極管的控制電路 31
實現方法與步驟 32
1.搭建硬件電路 32
2.新建STM32CubeMX工程 33
3.配置STM32的硬件資源 34
4.管理STM32CubeMX工程 39
5.生成Keil工程代碼 41
6.配置Keil工程 42
7.編譯連接程序 43
8.下載程序 44
實踐總結與拓展 46
習題2 46
項目2 GPIO口的應用設計 48
學習目標 48
任務3 控制LED閃爍 48
任務要求 48
知識儲備 49
1.Keil工程的結構 49
2.程序編寫規範 50
3.GPIO口輸出特性 52
4.GPIO口的輸出函數 54
5.延時函數 56
實現方法與步驟 56
1.搭建電路 56
2.生成GPIO口的初始化代碼 56
3.編寫LED閃爍程序 57
4.編譯與下載程序 58
實踐總結與拓展 60
習題3 61
任務4 製作跑馬燈 62
任務要求 62
知識儲備 63
1.位操作運算的應用 63
2.GPIO口的並行輸出 65
實現方法與步驟 66
1.搭建電路 66
2.生成GPIO口的初始化代碼 66
3.編寫跑馬燈程序 66
4.配置Keil工程 67
5.調試與下載程序 69
實踐總結與拓展 72
1.用查表法實現跑馬燈顯示 72
2.用訪問ODR寄存器的方式
實現跑馬燈顯示 74
習題4 75
任務5 顯示按鍵的狀態 77
任務要求 77
知識儲備 77
1.GPIO口的輸入特性 77
2.GPIO口的輸入函數 78
3.GPIO口的並行輸入 79
4.按鍵電路 79
實現方法與步驟 80
1.搭建電路 80
2.生成GPIO口的初始化代碼 80
3.編寫顯示按鍵狀態程序 81
4.調試與下載程序 82
實踐總結與拓展 83
習題5 83
項目3 外部中斷和定時器的應用設計 85
學習目標 85
任務6 統計按鍵按下的次數 85
任務要求 85
知識儲備 86
1.中斷的相關知識 86
2.嵌套中斷向量控制器NVIC 86
3.STM32的外部中斷控制器 87
4.HAL庫中GPIO口的外部中斷 函數 89
實現方法與步驟 91
1.搭建電路 91
2.生成外部中斷的初始化代碼 91
3.編寫統計按鍵按下次數的程序 95
4.調試與下載程序 97
程序分析 97
實踐總結與拓展 98
習題6 98
任務7 製作簡易秒錶 100
任務要求 100
知識儲備 100
1.定時器的分類 100
2.定時器的基本結構 101
3.計數模式 102
4.定時時長的計算 102
5.HAL庫中有關定時器的常用 函數 102
實現方法與步驟 104
1.搭建電路 104
2.生成定時器的初始化代碼 104
3.編寫簡易秒錶程序 106
程序分析 109
實踐總結與拓展 110
習題7 111
任務8 製作呼吸燈 112
任務要求 112
知識儲備 113
1.PWM的基本概念 113
2.STM32中PWM的結構 113
3.PWM的工作模式 114
4.定時器各通道的引腳分佈 114
5.HAL庫中PWM的函數和宏 115
實現方法與步驟 116
1.搭建電路 116
2.生成PWM的初始化代碼 116
3.編寫呼吸燈程序 120
4.調試與下載程序 122
實踐總結與拓展 122
習題8 123
項目4 串口通信的應用設計 124
學習目標 124
任務9 用串口與電腦交換數據 124
任務要求 124
知識儲備 125
1.串行通信的基本知識 125
2.STM32F103中通用串行口的結構 126
3.通用串行口的引腳 127
4.雙機通信電路 128
5.HAL庫中串行通信的常用函數 132
實現方法與步驟 134
1.搭建電路 134
2.生成串口1的初始化代碼 135
3.編寫串行通信程序 137
4.調試與下載程序 139
程序分析 140
實踐總結與拓展 143
習題9 144
任務10 用空閑中斷處理串口接收數據 145
任務要求 145
知識儲備 146
1.串口的空閑中斷 146
2.HAL庫中操作空閑中斷的宏 146
3.空閑中斷的編程方法 147
4.常用的串操作函數 149
實現方法與步驟 150
1.搭建電路 150
2.生成硬件初始化代碼 150
3.編寫數據接收程序 151
4.編寫數據處理程序 154
5.增加include目錄 156
6.調試與下載程序 157
程序分析 158
實踐總結與拓展 160
習題10 161
項目5 顯示與鍵盤的應用設計 163
學習目標 163
任務11 製作數碼管顯示的秒錶 163
任務要求 163
知識儲備 164
1.數碼管的顯示原理 164
2.數碼管的靜態顯示 165
3.數碼管的動態掃描顯示 166
實現方法與步驟 172
1.搭建電路 172
2.生成硬件初始化代碼 172
3.編寫數碼管顯示程序 173
4.編寫秒錶應用程序 174
實踐總結與拓展 175
習題11 179
任務12 用鍵盤控制秒錶的運行 181
任務要求 181
知識儲備 182
1.鍵盤處理流程 182
2.獨立式鍵盤接口 182
3.矩陣式鍵盤接口 188
實現方法與步驟 191
1.搭建電路 191
2.生成硬件初始化代碼 191
3.修改秒錶程序 191
4.添加鍵盤處理程序 193
實踐總結與拓展 195
習題12 195
任務13 用OLED屏顯示字符 196
任務要求 196
知識儲備 196
1.OLED屏與STM32的接口電路 196
2.SSD1306的顯存 198
3.SSD1306的地址模式 199
4.OLED的訪問程序 200
實現方法與步驟 205
1.搭建電路 205
2.生成硬件初始化代碼 205
3.移植OLED程序 205
4.製作字庫 206
5.編寫字符顯示程序 210
實踐總結與拓展 210
習題13 213
任務14 用OLED顯示圖片 215
任務要求 215
知識儲備 215
1.圖片顯示函數 215
2.圖片的顯示方法 216
實現方法與步驟 216
1.搭建電路 216
2.用圖片處理軟件編輯圖片文件 217
3.用Image2Lcd軟件製作位圖文件 220
4.用PCtoLCD軟件製作圖庫文件 221
5.生成硬件初始化代碼 222
6.編寫顯示圖片的應用程序 223
7.完善bmp.h頭文件 223
8.調試與下載程序 224
實踐總結與拓展 224
習題14 225
項目6 A/D與D/A轉換器的應用設計 226
學習目標 226
任務15 製作電壓監測器 226
任務要求 226
知識儲備 227
1.A/D轉換的基礎知識 227
2.STM32中ADC的結構 227
3.ADC的應用特性 230
4.HAL庫中有關ADC的常用函數和宏 232
實現方法與步驟 235
1.搭建電路 235
2.生成ADC的初始化代碼 235
3.編寫電壓監測器的程序 238
4.調試與下載程序 239
程序分析 239
實踐總結與拓展 240
習題15 240
任務16 製作電壓信號發生器 241
任務要求 241
知識儲備 242
1.D/A轉換的基礎知識 242
2.STM32中DAC的應用特性 242
3.HAL庫中有關DAC的常用函數 244
實現方法與步驟 246
1.搭建電路 246
2.生成DAC的初始化代碼 246
3.編寫信號發生器的程序 246
4.調試與下載程序 248
實踐總結與拓展 249
習題16 250
項目7 外設接口的應用設計 252
學習目標 252
任務17 用硬件SPI口控制OLED屏 252
任務要求 252
知識儲備 253
1.SPI接口的信號線 253
2.STM32中SPI口的應用特性 253
3.SPI口的設置方法 257
4.HAL庫中常用的SPI操作函數 258
實現方法與步驟 260
1.搭建電路 260
2.生成SPI口的初始化代碼 260
3.完善SPI通信程序 263
4.編寫顯示程序 265
5.調試與下載程序 266
實踐總結與拓展 266
習題17 267
任務18 用硬件I2C接口訪問AT24C02 269
任務要求 269
知識儲備 269
1.I2C總線的基本知識 269
2.STM32中I2C接口的應用特性 271
3.HAL庫中的I2C訪問函數 272
4.AT24C02的應用特性 273
實現方法與步驟 277
1.搭建電路 277
2.生成I2C接口的初始化代碼 278
3.編寫AT24C02的應用程序 279
4.在main.c文件中編寫應用程序 280
5.調試與下載程序 281
實踐總結與拓展 281
習題18 282
任務19 讀寫FLASH存儲器 283
任務要求 283
知識儲備 283
1.STM32的FLASH存儲器 283
2.HAL庫中有關FLASH操作的函數 284
3.讀寫FLASH存儲器的方法 286
實現方法與步驟 288
1.搭建電路 288
2.生成硬件初始化代碼 288
3.編寫讀寫FLASH存儲器的應用程序 288
4.調試與下載程序 291
實踐總結與拓展 291
習題19 291
任務20 用RTC製作數字鐘 293
任務要求 293
知識儲備 294
1.STM32中RTC的應用特性 294
2.HAL庫中有關RTC的操作函數 294
實現方法與步驟 300
1.搭建電路 300
2.生成RTC的初始化代碼 300
3.編寫數字鐘的應用程序 302
4.調試與下載程序 306
實踐總結與拓展 306
習題20 307
附錄A STM32開發板電路圖 309
附錄B 全國職業院校“物聯網應用開發” 大賽試題(STM32部分) 311
附錄C 1+X傳感網應用開發(中級)試題 (有關STM32部分) 314
參考文獻 317