基于構(gòu)件化的嵌入式系統(tǒng)設(shè)計(jì)——STM32微控制器
定 價(jià):59 元
- 作者:索明何 邢海霞 王宜懷 丁曉磊 著
- 出版時(shí)間:2023/8/1
- ISBN:9787111733249
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP368.1
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
本書(shū)以“項(xiàng)目目標(biāo)、知識(shí)準(zhǔn)備、項(xiàng)目實(shí)施、拓展學(xué)習(xí)、評(píng)價(jià)反饋”的項(xiàng)目化方式組織內(nèi)容,按照“搭積木”的設(shè)計(jì)思想,共設(shè)計(jì)了8個(gè)項(xiàng)目:GPIO基礎(chǔ)應(yīng)用—實(shí)現(xiàn)閃燈和開(kāi)關(guān)狀態(tài)檢測(cè)與控制功能;利用定時(shí)中斷實(shí)現(xiàn)頻閃燈;GPIO和定時(shí)器的綜合應(yīng)用—實(shí)現(xiàn)數(shù)碼管顯示、鍵盤(pán)檢測(cè)與控制、測(cè)溫功能;利用UART實(shí)現(xiàn)上位機(jī)和下位機(jī)的通信;利用Timer實(shí)現(xiàn)PWM和輸入捕獲功能;利用ADC設(shè)計(jì)簡(jiǎn)易數(shù)字電壓表;利用SPI實(shí)現(xiàn)多機(jī)串行通信;利用CAN實(shí)現(xiàn)多機(jī)通信。每個(gè)項(xiàng)目均采用“通用知識(shí)”→“嵌入式構(gòu)件設(shè)計(jì)”→“應(yīng)用層程序設(shè)計(jì)”→“學(xué)以致用與創(chuàng)新”的學(xué)習(xí)流程,最后可利用8個(gè)項(xiàng)目中的部分項(xiàng)目或全部項(xiàng)目進(jìn)行綜合應(yīng)用系統(tǒng)設(shè)計(jì)和課程考核。本書(shū)注重理論與實(shí)踐相結(jié)合,突出“學(xué)以致用”,注重培養(yǎng)創(chuàng)新意識(shí)和創(chuàng)新能力。
本書(shū)可作為高等院校電子信息類(lèi)、計(jì)算機(jī)類(lèi)、自動(dòng)化類(lèi)等專(zhuān)業(yè)的嵌入式系統(tǒng)設(shè)計(jì)教材,也可作為嵌入式技術(shù)培訓(xùn)教材,還可供從事嵌入式技術(shù)開(kāi)發(fā)的工程技術(shù)人員參考。
為了方便教學(xué),本書(shū)配套電子教案、電子課件、嵌入式技術(shù)資源、微課視頻、模擬試卷及答案等教學(xué)資源。凡選用本書(shū)作為授課教材的教師,均可通過(guò)QQ(2314073523)咨詢(xún)教學(xué)資源等事宜。
未經(jīng)許可,不得以任何方式復(fù)制或抄襲本書(shū)的任何內(nèi)容(含文字、創(chuàng)意、版式、案例和設(shè)計(jì)等),書(shū)中配套資源不得用于在線(xiàn)課程建設(shè)、微課制作等。版權(quán)所有,侵權(quán)必究。
前?言
嵌入式技術(shù)是推動(dòng)物聯(lián)網(wǎng)應(yīng)用,制造業(yè)高端化、智能化、綠色化發(fā)展的重要技術(shù)基礎(chǔ)!皢纹瑱C(jī)與嵌入式系統(tǒng)”是電子信息類(lèi)、計(jì)算機(jī)類(lèi)、自動(dòng)化類(lèi)等專(zhuān)業(yè)的核心課程,該課程面向嵌入式系統(tǒng)設(shè)計(jì)師工作崗位,目的是為社會(huì)培養(yǎng)具有嵌入式智能產(chǎn)品設(shè)計(jì)、分析、調(diào)試與創(chuàng)新能力的高素質(zhì)技術(shù)技能型人才。嵌入式系統(tǒng)由嵌入式硬件和嵌入式軟件組成,隨著技術(shù)的發(fā)展,嵌入式芯片的硬件集成度越來(lái)越高,使得嵌入式硬件設(shè)計(jì)難度不斷降低,因此嵌入式軟件設(shè)計(jì)在整個(gè)嵌入式系統(tǒng)開(kāi)發(fā)中所占的分量越來(lái)越大。嵌入式軟件設(shè)計(jì)的主流語(yǔ)言是C語(yǔ)言,讀者可通過(guò)本書(shū)第一著者在機(jī)械工業(yè)出版社出版的《C語(yǔ)言程序設(shè)計(jì)》加強(qiáng)C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)。
目前,越來(lái)越多的企業(yè)采用以ARM微處理器為內(nèi)核的微控制器開(kāi)發(fā)嵌入式智能產(chǎn)品,眾多高校也以基于ARM內(nèi)核的微控制器為藍(lán)本開(kāi)展嵌入式技術(shù)教學(xué)。目前,嵌入式技術(shù)教學(xué)中主要存在以下三個(gè)問(wèn)題:
1)過(guò)于依賴(lài)具體的芯片資料,直接將芯片手冊(cè)翻譯成對(duì)應(yīng)的教學(xué)章節(jié),沒(méi)有對(duì)嵌入式系統(tǒng)涉及的通用知識(shí)和共性要素進(jìn)行提取和總結(jié),很難體現(xiàn)學(xué)習(xí)重點(diǎn);同時(shí)也會(huì)導(dǎo)致一旦換了嵌入式芯片,很難實(shí)現(xiàn)在不同嵌入式芯片和不同嵌入式應(yīng)用系統(tǒng)之間的軟硬件可移植和可復(fù)用。
2)直接使用芯片廠家提供的微控制器底層驅(qū)動(dòng)庫(kù)進(jìn)行應(yīng)用程序開(kāi)發(fā),而其底層驅(qū)動(dòng)庫(kù)存在兩大弊端:一是底層驅(qū)動(dòng)函數(shù)的參數(shù)使用結(jié)構(gòu)體指針變量,這要比使用普通變量作為函數(shù)參數(shù)的學(xué)習(xí)難度大,并且在程序執(zhí)行期間,結(jié)構(gòu)體變量的所有成員一直駐留在內(nèi)存中,因此結(jié)構(gòu)體變量中未使用的成員會(huì)白白浪費(fèi)微控制器的內(nèi)存空間;二是不同片內(nèi)外設(shè)的底層驅(qū)動(dòng)未能相互獨(dú)立,在實(shí)現(xiàn)某一個(gè)片內(nèi)外設(shè)的底層驅(qū)動(dòng)功能時(shí),需要調(diào)用另一個(gè)片內(nèi)外設(shè)的底層驅(qū)動(dòng)函數(shù),這不符合嵌入式軟件工程的設(shè)計(jì)要求。
3)嵌入式軟件工程文件組織不合理,使初學(xué)者分不清哪些工程文件是用戶(hù)文件,哪些工程文件是系統(tǒng)生成文件,導(dǎo)致學(xué)習(xí)者望而生畏。
上述的三個(gè)問(wèn)題,導(dǎo)致嵌入式技術(shù)學(xué)習(xí)難度大、學(xué)習(xí)效果不理想。
針對(duì)上述問(wèn)題,根據(jù)著者十幾年來(lái)的嵌入式系統(tǒng)應(yīng)用項(xiàng)目開(kāi)發(fā)經(jīng)驗(yàn)和課程教學(xué)經(jīng)驗(yàn),為了實(shí)現(xiàn)嵌入式系統(tǒng)設(shè)計(jì)的可移植性和可復(fù)用性,嵌入式硬件和嵌入式軟件均采用構(gòu)件化的設(shè)計(jì)思想,即對(duì)嵌入式硬件和嵌入式軟件進(jìn)行封裝,供系統(tǒng)設(shè)計(jì)者調(diào)用,并倡導(dǎo)嵌入式軟件分層設(shè)計(jì)的理念,以大幅度降低嵌入式技術(shù)學(xué)習(xí)難度和開(kāi)發(fā)難度,為因材施教提供有效可行的途徑(書(shū)中標(biāo)有“*”的內(nèi)容,學(xué)習(xí)者可根據(jù)自身基礎(chǔ),靈活將其作為必學(xué)內(nèi)容或選學(xué)內(nèi)容)。由于在嵌入式構(gòu)件設(shè)計(jì)過(guò)程中,注重提取共性要素,而不依賴(lài)于具體的MCU芯片,因此,學(xué)習(xí)者在將來(lái)的嵌入式智能產(chǎn)品開(kāi)發(fā)時(shí),即使更換了芯片,嵌入式技術(shù)學(xué)習(xí)和應(yīng)用也不需要從零開(kāi)始。
根據(jù)黨的二十大精神,本書(shū)在編寫(xiě)過(guò)程中,牢固樹(shù)立以學(xué)習(xí)者可持續(xù)發(fā)展為中心的教學(xué)理念,使學(xué)校教學(xué)過(guò)程與企業(yè)產(chǎn)品開(kāi)發(fā)過(guò)程相對(duì)接。以“項(xiàng)目目標(biāo)、知識(shí)準(zhǔn)備、項(xiàng)目實(shí)施、拓展學(xué)習(xí)、評(píng)價(jià)反饋”的項(xiàng)目化方式組織內(nèi)容,按照“搭積木”的設(shè)計(jì)思想,共設(shè)計(jì)了8個(gè)項(xiàng)目,每個(gè)項(xiàng)目均采用了“通用知識(shí)”→“嵌入式構(gòu)件設(shè)計(jì)”→“應(yīng)用層程序設(shè)計(jì)”→“學(xué)以致用與創(chuàng)新”的學(xué)習(xí)流程。在教學(xué)過(guò)程中,可以根據(jù)實(shí)際情況,靈活調(diào)整項(xiàng)目2~8的教學(xué)順序,最后可利用8個(gè)項(xiàng)目中的部分項(xiàng)目或全部項(xiàng)目進(jìn)行綜合應(yīng)用系統(tǒng)設(shè)計(jì)和課程考核。
本書(shū)注重嵌入式軟件的規(guī)范性,提供的嵌入式軟件包括程序代碼和必要的文檔說(shuō)明,同時(shí)注重理論與實(shí)踐相結(jié)合,注重培養(yǎng)學(xué)生的創(chuàng)新意識(shí)和創(chuàng)新能力。教師可利用書(shū)中設(shè)置的“知識(shí)鞏固”“學(xué)以致用”“思路總結(jié)”“活學(xué)活用”“學(xué)以致用與創(chuàng)新”等練習(xí),從“素質(zhì)”“知識(shí)”“能力”3個(gè)維度提高學(xué)生的嵌入式技術(shù)基礎(chǔ)與應(yīng)用能力,同時(shí)培養(yǎng)學(xué)生具有良好的基本職業(yè)素質(zhì)、團(tuán)結(jié)協(xié)作素質(zhì)、自主學(xué)習(xí)素質(zhì),使學(xué)生具有一定的辯證唯物主義運(yùn)用能力、發(fā)現(xiàn)問(wèn)題和解決問(wèn)題的能力,同時(shí)具有安全意識(shí)、勞動(dòng)意識(shí)、創(chuàng)新意識(shí)、創(chuàng)新能力和強(qiáng)烈的愛(ài)國(guó)主義精神,為中國(guó)式現(xiàn)代化建設(shè)和中華民族偉大復(fù)興而不懈奮斗、貢獻(xiàn)力量。
本書(shū)所附的“學(xué)習(xí)筆記”可用于書(shū)寫(xiě)“課堂筆記”“知識(shí)鞏固”“學(xué)以致用與創(chuàng)新”等內(nèi)容,也可作為課程過(guò)程考核材料。讀者可自行加頁(yè)。
本書(shū)由索明何、邢海霞、王宜懷和丁曉磊著,索明何負(fù)責(zé)全書(shū)的策劃、內(nèi)容安排、案例選取和統(tǒng)稿工作。在編寫(xiě)過(guò)程中,意法半導(dǎo)體(ST)大學(xué)計(jì)劃部提供了相關(guān)技術(shù)參考資料并給予了精心指導(dǎo),在此表示衷心的感謝!
由于著者水平有限,疏漏之處在所難免,懇請(qǐng)廣大專(zhuān)家和讀者提出寶貴的意見(jiàn)和建議。著者聯(lián)系方式:1043510795@qq.com。
著者
目 錄
前言
項(xiàng)目1 GPIO基礎(chǔ)應(yīng)用—實(shí)現(xiàn)閃燈和
開(kāi)關(guān)狀態(tài)檢測(cè)與控制功能 1
項(xiàng)目目標(biāo) 1
知識(shí)準(zhǔn)備 2
任務(wù)1.1 熟悉嵌入式系統(tǒng)和課程學(xué)習(xí)
方法 2
1.1.1 嵌入式系統(tǒng)的概念和組成 2
1.1.2 嵌入式系統(tǒng)的知識(shí)體系和學(xué)習(xí)
建議 5
任務(wù)1.2 熟悉MCU資源和硬件最小
系統(tǒng) 6
1.2.1 STM32F1系列MCU簡(jiǎn)介 6
1.2.2 MCU存儲(chǔ)映射、引腳功能與
硬件最小系統(tǒng) 7
任務(wù)1.3 掌握MCU的GPIO底層驅(qū)動(dòng)
構(gòu)件使用方法 12
1.3.1 GPIO的通用知識(shí) 12
1.3.2 MCU的GPIO底層驅(qū)動(dòng)構(gòu)件
使用方法 13
項(xiàng)目實(shí)施 17
任務(wù)1.4 嵌入式構(gòu)件化設(shè)計(jì)及閃燈的
實(shí)現(xiàn) 17
1.4.1 小燈硬件構(gòu)件和軟件構(gòu)件的設(shè)計(jì)及使用方法 17
1.4.2 嵌入式軟件最小系統(tǒng)設(shè)計(jì)
—實(shí)現(xiàn)閃燈 21
任務(wù)1.5 開(kāi)關(guān)狀態(tài)檢測(cè)與控制功能的
設(shè)計(jì)與實(shí)現(xiàn) 31
1.5.1 開(kāi)關(guān)硬件構(gòu)件和軟件構(gòu)件的
設(shè)計(jì)及使用方法 31
1.5.2 開(kāi)關(guān)狀態(tài)檢測(cè)與控制功能的
應(yīng)用層程序設(shè)計(jì) 34
拓展學(xué)習(xí) 36
*任務(wù)1.6 熟悉MCU的GPIO底層驅(qū)動(dòng)
構(gòu)件源文件 36
評(píng)價(jià)反饋 41
項(xiàng)目2 利用定時(shí)中斷實(shí)現(xiàn)頻閃燈 43
項(xiàng)目目標(biāo) 43
知識(shí)準(zhǔn)備 43
任務(wù)2.1 理解定時(shí)器的定時(shí)原理 43
任務(wù)2.2 理解中斷的通用知識(shí) 44
2.2.1 中斷的基本概念 44
2.2.2 中斷的基本過(guò)程 47
2.2.3 CM3的非內(nèi)核模塊中斷管理
機(jī)制 48
項(xiàng)目實(shí)施 49
任務(wù)2.3 利用Timer定時(shí)中斷實(shí)現(xiàn)頻
閃燈 49
2.3.1 MCU的Timer基本定時(shí)底層
驅(qū)動(dòng)構(gòu)件的使用方法 49
2.3.2 利用Timer定時(shí)中斷實(shí)現(xiàn)頻閃燈
的應(yīng)用層程序設(shè)計(jì) 52
任務(wù)2.4 利用內(nèi)核定時(shí)器(SysTick Timer)中斷實(shí)現(xiàn)頻閃燈 56
2.4.1 SysTick的功能特性及其底層
驅(qū)動(dòng)構(gòu)件的使用方法 56
2.4.2 利用SysTick定時(shí)中斷實(shí)現(xiàn)頻閃
燈的應(yīng)用層程序設(shè)計(jì) 58
拓展學(xué)習(xí) 60
*任務(wù)2.5 熟悉MCU的定時(shí)器底層
驅(qū)動(dòng)構(gòu)件源文件 60
2.5.1 MCU的Timer基本定時(shí)底層驅(qū)動(dòng)
構(gòu)件源文件 60
2.5.2 MCU的SysTick定時(shí)器底層驅(qū)動(dòng)構(gòu)件源文件 63
評(píng)價(jià)反饋 64
項(xiàng)目3 GPIO和定時(shí)器的綜合應(yīng)用—
實(shí)現(xiàn)數(shù)碼管顯示、鍵盤(pán)檢測(cè)與
控制、測(cè)溫功能 65
項(xiàng)目目標(biāo) 65
知識(shí)準(zhǔn)備 65
任務(wù)3.1 掌握數(shù)碼管的通用知識(shí) 65
3.1.1 數(shù)碼管的結(jié)構(gòu) 65
3.1.2 基于MCU直接控制的數(shù)碼管
硬件構(gòu)件設(shè)計(jì) 66
3.1.3 數(shù)碼管的筆形碼 67
3.1.4 基于MCU直接控制的數(shù)碼管
顯示原理 69
任務(wù)3.2 掌握鍵盤(pán)的通用知識(shí) 71
3.2.1 鍵盤(pán)的基本問(wèn)題 71
3.2.2 鍵盤(pán)的兩種接口方式 72
任務(wù)3.3 基于TM1637的數(shù)碼管和鍵盤(pán)
構(gòu)件設(shè)計(jì) 74
3.3.1 基于TM1637的數(shù)碼管和鍵盤(pán)
硬件構(gòu)件設(shè)計(jì) 74
3.3.2 基于TM1637的數(shù)碼管和鍵盤(pán)
軟件構(gòu)件的組成及使用方法 76
項(xiàng)目實(shí)施 79
任務(wù)3.4 基于TM1637的數(shù)碼管顯示的
應(yīng)用層程序設(shè)計(jì) 79
3.4.1 使用軟件延時(shí)實(shí)現(xiàn)數(shù)碼管先后
顯示不同的數(shù)據(jù) 79
3.4.2 使用定時(shí)中斷實(shí)現(xiàn)數(shù)碼管先后
顯示不同的數(shù)據(jù) 81
任務(wù)3.5 基于TM1637的鍵盤(pán)檢測(cè)與控制的應(yīng)用層程序設(shè)計(jì) 85
3.5.1 鍵盤(pán)檢測(cè)與控制的查詢(xún)程序
流程 85
3.5.2 應(yīng)用實(shí)例參考程序 85
任務(wù)3.6 基于DS18B20的測(cè)溫功能
設(shè)計(jì)與實(shí)現(xiàn) 88
3.6.1 DS18B20的主要特點(diǎn)和基于DS18B20的測(cè)溫硬件構(gòu)件
設(shè)計(jì) 88
3.6.2 基于DS18B20的測(cè)溫軟件構(gòu)件的組成及使用方法 89
3.6.3 基于DS18B20的測(cè)溫功能應(yīng)用
層程序設(shè)計(jì) 90
拓展學(xué)習(xí) 92
*任務(wù)3.7 基于TM1637的數(shù)碼管和
鍵盤(pán)軟件構(gòu)件源文件的設(shè)計(jì) 92
*任務(wù)3.8 基于DS18B20的測(cè)溫軟件構(gòu)件源文件的設(shè)計(jì) 98
評(píng)價(jià)反饋 103
項(xiàng)目4 利用UART實(shí)現(xiàn)上位機(jī)和下位
機(jī)的通信 105
項(xiàng)目目標(biāo) 105
知識(shí)準(zhǔn)備 105
任務(wù)4.1 理解UART的通用知識(shí) 105
任務(wù)4.2 掌握MCU的UART底層驅(qū)動(dòng)
構(gòu)件使用方法 108
4.2.1 MCU的UART主要特性和
引腳 108
4.2.2 MCU的UART底層驅(qū)動(dòng)構(gòu)件
的組成及使用方法 109
項(xiàng)目實(shí)施 112
任務(wù)4.3 UART通信應(yīng)用層程序設(shè)計(jì)
與功能測(cè)試 112
4.3.1 UART通信的應(yīng)用層程序
設(shè)計(jì) 112
4.3.2?UART通信的測(cè)試方法 115
4.3.3?使用printf函數(shù)輸出數(shù)據(jù) 116
拓展學(xué)習(xí) 118
*任務(wù)4.4 熟悉MCU的UART底層
驅(qū)動(dòng)構(gòu)件源文件 118
評(píng)價(jià)反饋 126
項(xiàng)目5 利用Timer實(shí)現(xiàn)PWM和輸入
捕獲功能 127
項(xiàng)目目標(biāo) 127
知識(shí)準(zhǔn)備 127
任務(wù)5.1 理解PWM和輸入捕獲的通用
知識(shí) 127
5.1.1 PWM的通用知識(shí) 127
5.1.2 輸入捕獲的通用知識(shí) 130
任務(wù)5.2 掌握Timer_PWM_INCAP
底層驅(qū)動(dòng)構(gòu)件使用方法 131
5.2.1 MCU的Timer通道引腳 131
5.2.2 Timer_PWM_INCAP底層驅(qū)動(dòng)
構(gòu)件的組成及使用方法 132
項(xiàng)目實(shí)施 138
任務(wù)5.3 利用PWM控制小燈的
亮度 138
任務(wù)5.4 利用輸入捕獲測(cè)量脈沖信號(hào)
的周期和脈寬 140
拓展學(xué)習(xí) 144
*任務(wù)5.5 熟悉Timer_PWM_INCAP
底層驅(qū)動(dòng)構(gòu)件源文件 144
評(píng)價(jià)反饋 159
項(xiàng)目6 利用ADC設(shè)計(jì)簡(jiǎn)易數(shù)字
電壓表 161
項(xiàng)目目標(biāo) 161
知識(shí)準(zhǔn)備 161
任務(wù)6.1 理解ADC的通用知識(shí) 161
任務(wù)6.2 掌握MCU的ADC底層驅(qū)
動(dòng)構(gòu)件使用方法 164
6.2.1 MCU的ADC主要特性
和引腳 164
6.2.2 MCU的ADC底層驅(qū)動(dòng)構(gòu)件的
組成及使用方法 165