嵌入式技術及應用(STM32CubeMX版)( 簡體 字) | |
作者:李文華 | 類別:1. -> 電腦組織與體系結構 -> 單晶片 -> STM32 |
出版社:電子工業出版社 | 3dWoo書號: 56328 詢問書籍請說出此書號! 有庫存 NT售價: 295 元 |
出版日:9/1/2023 | |
頁數:324 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121462085 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
項目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 本書采用STM32CubeMX的開發方式,選用20個基于STM32嵌入式技術開發的實例,按照“理論夠用,突出應用”的原則,采取項目化教學的方式,以作品制作為載體,在作品制作過程中講解STM32嵌入式技術的基礎知識、基本技能和方法,培養學生的愛崗敬業、耐心仔細、抗壓抗挫等優良品質和精神,由淺入深地講解STM32嵌入式技術應用,包括安裝開發工具、點亮LED燈、控制LED燈閃爍、制作跑馬燈、顯示按鍵的狀態、統計按鍵按下的次數、制作簡易秒表、制作呼吸燈、用串口與計算機交換數據、用空閑中斷處理串口接收數據、制作用數碼管顯示的秒表、用鍵盤控制秒表的運行、用OLED屏顯示字符、用OLED屏顯示圖片、制作電壓監測器、制作電壓信號發生器、用硬件SPI口控制OLED屏、用硬件I2C接口訪問AT24C02、讀寫Flash存儲器、用RTC制作數字鐘以及C程序設計技巧。本書立足于應用實踐,融入了近年來全國職業技能大賽中有關STM32嵌入式應用技術的內容和1+X職業技能等級考試內容,適于用作高等職業院校物聯網、電子信息、智能產品設計、應用電子、機電一體化、機械電子、汽車電子等專業嵌入式技術應用課程的教材,也可作為應用型本科和1+X“傳感網應用開發”職業技能等級考試培訓教材或者供參加物聯網大賽和從事STM32嵌入式技術應用的工程技術人員學習和參考。
STM32嵌入式應用系統的軟件開發方式有基于寄存器的開發方式、基于標準外設庫的開發方式和基于STM32CubeMX的開發方式3種。基于寄存器的開發方式早已被淘汰,基于標準外設庫的開發方式不適用于新推出的STM32微控制器,正逐漸被淘汰,基于STM32CubeMX的開發方式是ST公司最近推出的一種圖形化的開發方式,這種開發方式所生成的程序具有很好的可移植性,是現在和今后的主流開發方式,越來越多的企業在STM32嵌入式應用開發中都選用這種開發方式,在全國職業院校技能大賽的許多賽項和“1+X”的許多證書的考試中,例如,物聯網應用技術賽項、“1+X”傳感網應用開發考證等,在有關STM32嵌入式開發時都采用基于STM32CubeMX的開發方式。鑒于這種現狀,我們在人工智能雙高專業群建設過程中,結合近年來職業院校技能大賽備賽指導和“1+X”傳感網應用開發考證指導工作,編寫了這本《嵌入式技術應用(STM32CubeMX版)》,本書具有以下特點。
1.融入思政元素,強化了教材的德育性 教材主要從2方面實施課程思政。一是在每個項目的學習目標中明確地提出了思政目標。二是根據項目任務的內容分別在知識儲備、實現方法與步驟、實踐總結與拓展或者課后習題中無縫地融入若干思政元素,做到潤物無聲。例如,在程序調試實踐中要學生保持良好的心態,通過仔細觀察、耐心實踐、努力嘗試,從而鍛煉學生的意志力,增強學生的抗挫能力;再如在任務9的習題中,我們要求學生利用串口輸出社會主義核心價值觀的內容,既訓練了學生的串口編程技術,又強化了學生的正確價值觀。 2.用二維碼嵌入講解視頻,方便讀者自主學習 本教材提供了大量講解視頻,每個視頻時長5分鐘左右,從而將教材中的知識點碎片化。這些視頻的主要內容是各個任務中重點知識的講解或者各個任務的實踐操作過程的演示。讀者只需用手機掃描教材中的對應二維碼,就可以觀看對應的視頻講解,從而方便讀者課前預習和課后復習。 3.按項目構建課程內容,用實例組織單元教學 本書分為7個項目,共20個任務,包括搭建開發環境、GPIO口的應用設計、外部中斷和定時器的應用設計、串口通信的應用設計、顯示與鍵盤的應用設計、A/D與D/A的應用設計、外設接口的應用設計。每個項目包含若干個任務。全書采用STM32CubeMX開發方式講解了STM32嵌入式系統的開發過程、設計方法和基本技能。全書按項目編排,STM32嵌入式應用系統開發所需要的基本知識和基本技能穿插在各個任務的完成過程中進行講解,每一個任務只講解完成本任務所需要的基本知識、基本方法和基本技能,從而將知識化整為零,降低了學習的難度。 4.融“教、學、做”于一體,突出了教材的實踐性 書中的每一個任務都是按照以下方式組織編排的:①任務要求,②知識儲備,③實現方法與步驟,④程序分析,⑤實踐總結與拓展。其中,任務要求部分主要介紹做什么和做到什么程度,是讀者實踐時的目標要求,后續部分都是圍繞著任務的實現而展開的。知識儲備部分主要介紹STM32嵌入式應用中的一些基本概念、HAL庫中所提供的有關函數及其用法,這一部分供讀者在完成任務前閱讀之用,也是本任務完成后所要掌握的基本知識。實現方法與步驟部分主要介紹怎么做,這一部分詳細地講解了本項目的實施過程,包括電路的搭建、用STM32CubeMX生成初始化代碼的方法和步驟、應用程序的編寫、程序的編譯下載等,讀者按照書中所介紹的方法和步驟逐步實施,就可以實現任務要求,這一部分是讀者實踐時必須親手做的事情。程序分析部分(目錄中未體現,書中有)主要介紹了為什么要這樣做,這一部分詳細地講解了程序設計的思路、原則和方法。實踐總結與拓展部分主要對知識和技能進行梳理與總結,并適當進行拓展。 5.融入職業技能標準,內容反映了“1+X”考證要求和職業院校技能大賽的要求 《傳感網開發職業技能等級標準》是由北京新大陸時代科技有限公司組織編寫的,該公司的黃敏恒高級工程師參與了本書的規劃和編寫;另外,本書的作者多年來一直從事STM32嵌入式技術及應用課程的教學工作、“1+X”傳感網應用開發考證指導和全國物聯網技術應用技能大賽輔導工作,書中許多制作任務或習題來源于考證試題或者競賽試題,每個任務中都設置了至少一道與技能大賽、“1+X”考證試題難度相當、題型相似的綜合練習題。本書融入了《傳感網開發職業技能等級標準》,反映了“1+X”考證要求和物聯網技術應用技能大賽的要求。 6.提供了配套的實訓平臺,避免了教材與實訓系統相互脫節 STM32嵌入式技術應用是一門實踐性非常強的課程,除了要進行課堂學習之外,還需要強有力的實踐性環節與之配合。因此,我們研制并推出了MFIoT實訓平臺及相關的實訓模塊,包括ZigBee開發板、CCDebug仿真器、相關傳感器模塊以及STM32開發板、STLink仿真器、NBIoT開發板、LORA開發板、智能網關等。其中,STM32開發板、STLink仿真器和傳感器模塊與本書配套,避免了以往出現的教材與實訓系統相互脫節的情況,真正做到課堂內外相互統一。如果使用本書的院校在準備器件時有困難,可以與編者聯系(E-mail:lizhuqing_ 123@163.com),也可以進入淘寶網,搜索“青竹電子”店鋪購買。 7.提供了豐富的教學資源,方便教師備課和讀者學習 本書提供了9種教學資源:7個項目中各任務的源程序文件;STM32開發板的電路圖;書中所有芯片和傳感器的PDF文檔;教學課件;STM32嵌入式應用常用的工具軟件;近年來全國物聯網應用技術技能大賽試題;傳感網應用開發“1+X”考證試題;部分習題解答;課程思政活頁。其中,各任務的源程序文件供讀者學習前觀察任務的實現效果之用,各芯片和傳感器的PDF文檔供讀者學習查閱之用,提供常用的工具軟件可以節省讀者收集開發工具的時間。所有資源可直接從電子工業出版社教材服務網站上下載,也可以與編者聯系,部分資源只要掃描書中的二維碼就可以直接下載。 在使用本書時,建議采用“教、學、做”一體化的方式組織教學,最好在具有實物投影的實訓室內組織教學。教學時,建議先將書中提供的程序下載至開發板中,讓學生觀看實際效果并體會任務要求的真實含義,激發學生的學習興趣。然后引導學生邊做邊學,直至任務的完成,讓學生在做中體會和總結STM32嵌入式應用系統的開發技術。 本書由浙江工貿職業技術學院李文華任主編,浙江工貿職業技術學院姚健和北京新大陸時代科技有限公司的黃敏恒高級工程師任副主編。具體編寫分工如下:李文華編寫了任務9~任務14、任務17~任務20,并負責全書的策劃、統稿和任務9~任務12、任務17~任務20的講解視頻的拍攝;姚健編寫了任務1~任務8,并負責任務1~任務8、任務13~任務16的講解視頻的拍攝;黃敏恒編寫了任務15和任務16,并負責提供工程案例和項目的篩選,參與本教材的規劃和內容的制定。 本書是浙江工貿職業技術學院人工智能雙高專業群建設成果之一。在本書成稿的過程中,曾得到許多同人和朋友的幫助和支持。浙江工貿職業技術學院的汪焰教授對本書的編寫進行了深入指導,湖北第二師范學院的焦啟民教授、廣東科技職業技術學院的余愛民教授、武漢鐵道職業技術學院的鄭毛祥教授、溫州職業技術學院的張佐理副教授、長江職業技術學院的鄧柳副教授、浙江安防職業技術學院的金恩曼副教授、浙江交通職業技術學院的洪順利副教授等多位老師對本書的編寫提出了許多積極寶貴的意見,并給予極大的關心和支持。感謝電子工業出版社的編輯為本書出版所做的辛勤工作,沒有他們就沒有這本書的出版,謹此表示感謝﹗ 盡管編者在本書的編寫方面做了許多努力,但由于編者的水平有限,加之時間緊迫,錯誤不當之處在所難免,懇請各位讀者批評指正,并將意見和建議及時反饋給我們,以便修訂時改進。 編 者 2023年3月 |