版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目1國(guó)產(chǎn)嵌入式技術(shù)概覽項(xiàng)目1國(guó)產(chǎn)嵌入式技術(shù)概覽項(xiàng)目2倉(cāng)儲(chǔ)火災(zāi)檢測(cè)終端設(shè)計(jì)與開發(fā)項(xiàng)目3指紋門禁應(yīng)用終端設(shè)計(jì)與開發(fā)項(xiàng)目4智能溫濕度檢測(cè)終端設(shè)計(jì)與實(shí)現(xiàn)項(xiàng)目5可穿戴應(yīng)用終端設(shè)計(jì)與實(shí)現(xiàn)全套可編輯PPT課件
任務(wù)1初識(shí)國(guó)產(chǎn)嵌入式與微控制器技術(shù)項(xiàng)目1國(guó)產(chǎn)嵌入式技術(shù)概覽項(xiàng)目2倉(cāng)儲(chǔ)火災(zāi)檢測(cè)終端設(shè)計(jì)與開發(fā)項(xiàng)目3指紋門禁應(yīng)用終端設(shè)計(jì)與開發(fā)項(xiàng)目4智能溫濕度檢測(cè)終端設(shè)計(jì)與實(shí)現(xiàn)項(xiàng)目5可穿戴應(yīng)用終端設(shè)計(jì)與實(shí)現(xiàn)全套可編輯PPT課件
什么是嵌入式?起初,嵌入式系統(tǒng)的萌芽植根于單片機(jī)技術(shù)的誕生,20世紀(jì)70年代,隨著單片機(jī)的問(wèn)世,汽車、家用電器、工業(yè)機(jī)械、通信設(shè)備等萬(wàn)千產(chǎn)品步入電子化時(shí)代,實(shí)現(xiàn)了功能增強(qiáng):操作簡(jiǎn)便、速度提升、成本降低。這些初步的嵌入式應(yīng)用以8位芯片為核心,執(zhí)行簡(jiǎn)單的單線程程序,尚不具備現(xiàn)代意義上的“系統(tǒng)”完整性。進(jìn)入80年代初,隨著商業(yè)化“操作系統(tǒng)”被引入嵌入式應(yīng)用開發(fā),編程實(shí)踐發(fā)生了革新,顯著縮短了開發(fā)周期、降低了成本并提升了效率,正式標(biāo)示著“嵌入式系統(tǒng)”時(shí)代的到來(lái)。此階段的操作系統(tǒng)核心實(shí)質(zhì)為實(shí)時(shí)系統(tǒng)內(nèi)核,融合了傳統(tǒng)操作系統(tǒng)的關(guān)鍵特性,如任務(wù)管理、進(jìn)程間通信、同步機(jī)制、中斷處理及內(nèi)存管理等,代表性的產(chǎn)品有ReadySystem的VRTX、ISI的PSOS、IMG的VxWorks以及QNX的QNX系統(tǒng)。這些系統(tǒng)共有的嵌入式特性包括搶占式調(diào)度、快速響應(yīng)、確定性執(zhí)行時(shí)間、小巧且高度可定制的核心,以及良好的跨處理器移植能力,強(qiáng)化了實(shí)時(shí)性和可靠性,為嵌入式應(yīng)用打開了更寬廣的開發(fā)天地,釋放了開發(fā)者潛能。進(jìn)入90年代后,隨著對(duì)實(shí)時(shí)性要求的提升及軟件復(fù)雜度的增長(zhǎng),實(shí)時(shí)內(nèi)核進(jìn)化為功能更全面的實(shí)時(shí)多任務(wù)操作系統(tǒng)(RTOS),成為了嵌入式系統(tǒng)領(lǐng)域的標(biāo)準(zhǔn)配置。眾多企業(yè)洞悉到這一領(lǐng)域的巨大潛力,紛紛投身嵌入式操作系統(tǒng)開發(fā),除了前述的行業(yè)先鋒,市場(chǎng)上涌現(xiàn)了PalmOS、WindowsCE、嵌入式Linux、Lynx、Nucleus以及Hopen、DeltaOS等新面孔。嵌入式系統(tǒng)構(gòu)成了眾多日常裝置及設(shè)備的核心,作為一種專業(yè)定制的計(jì)算機(jī)系統(tǒng),它們被內(nèi)置在諸如手表、微波爐、錄像機(jī)乃至汽車等一切具備數(shù)字接口的設(shè)備中。這類系統(tǒng)本質(zhì)上市通過(guò)一個(gè)嵌入式處理器控制板實(shí)現(xiàn),其中控制程序存儲(chǔ)在ROM中,確保了高度的穩(wěn)定性和針對(duì)性功能。盡管某些情況下,嵌入式系統(tǒng)會(huì)搭載一個(gè)操作系統(tǒng),但大多數(shù)設(shè)計(jì)傾向于利用單一程序來(lái)完成所有的控制邏輯。嵌入式系統(tǒng)是軟件、硬件乃至必要時(shí)的機(jī)械部件的緊密結(jié)合體,專為滿足特定應(yīng)用需求而定制。國(guó)內(nèi)嵌入式系統(tǒng)普遍被廣泛定義為:一種以應(yīng)用為核心,依托計(jì)算機(jī)技術(shù),能夠靈活裁剪軟硬件配置,嚴(yán)格符合功能、可靠性、成本控制、體積及能耗等特定要求的專用計(jì)算機(jī)系統(tǒng)。那么,這些“專用”方向具體涵蓋了哪些領(lǐng)域呢?辦公自動(dòng)化:促進(jìn)高效辦公的設(shè)備,如打印機(jī)、復(fù)印機(jī)、傳真機(jī);國(guó)防與航天:尖端科技產(chǎn)品,包括無(wú)人機(jī)、雷達(dá)系統(tǒng)、作戰(zhàn)機(jī)器人;家用電器:提升生活品質(zhì)的智能產(chǎn)品,如數(shù)字電視、掃地機(jī)器人、智能家居系統(tǒng);醫(yī)療電子:關(guān)乎健康的精密儀器,如生化分析儀、血液分析儀及CT掃描設(shè)備;汽車電子:強(qiáng)化車輛性能與安全的系統(tǒng),涉及引擎控制、安全防護(hù)、導(dǎo)航與車載娛樂(lè);通信網(wǎng)絡(luò):支撐信息流通的基礎(chǔ)設(shè)施,如交換機(jī)、路由器及網(wǎng)絡(luò)安全設(shè)備;通訊與娛樂(lè):豐富人們生活的智能設(shè)備,包括智能手機(jī)、數(shù)碼相機(jī)、音樂(lè)播放器、可穿戴設(shè)備及游戲機(jī);工業(yè)控制:自動(dòng)化生產(chǎn)與監(jiān)控的關(guān)鍵組件,涵蓋工控機(jī)、POS機(jī)、ATM機(jī)、安防監(jiān)控及各類儀器儀表。一個(gè)嵌入式系統(tǒng)的典型架構(gòu)如下:從硬件角度來(lái)看,嵌入式系統(tǒng)就是以處理器(CPU)為核心,依靠總線(Bus)進(jìn)行連接的多模塊系統(tǒng):國(guó)產(chǎn)嵌入式系統(tǒng)發(fā)展史國(guó)內(nèi)參與嵌入式系統(tǒng)的公司數(shù)量較多,但普遍進(jìn)入行業(yè)較晚,從2000年到現(xiàn)在,國(guó)內(nèi)的操作系統(tǒng)如雨后春筍般發(fā)展出來(lái)。1.科銀京成-Deltaos(道系統(tǒng))“道系統(tǒng)”操作系統(tǒng)通用版(DeltaOS)是一款面向各領(lǐng)域的嵌入式實(shí)時(shí)操作系統(tǒng),支持單核及多核CPU硬件配置,可替換相關(guān)領(lǐng)域的VxWorks6.8/6.9操作系統(tǒng)。國(guó)防裝備領(lǐng)域中,對(duì)實(shí)時(shí)性有一定要求的嵌入式計(jì)算機(jī)系統(tǒng)??蓱?yīng)用于裝備電子應(yīng)用領(lǐng)域指控、火控、雷達(dá)、水聲、光電、通信等系統(tǒng),還可用于對(duì)應(yīng)系統(tǒng)研制中的試驗(yàn)仿真系統(tǒng)。2.睿賽德RT-threadRT-Thread是一個(gè)集實(shí)時(shí)操作系統(tǒng)(RTOS)內(nèi)核、中間件組件和開發(fā)者社區(qū)于一體的技術(shù)平臺(tái),由熊譜翔先生帶領(lǐng)并集合開源社區(qū)力量開發(fā)而成,RT-Thread也是一個(gè)組件完整豐富、高度可伸縮、簡(jiǎn)易開發(fā)、超低功耗、高安全性的物聯(lián)網(wǎng)操作系統(tǒng)。RT-Thread具備一個(gè)IoTOS平臺(tái)所需的所有關(guān)鍵組件,例如GUI、網(wǎng)絡(luò)協(xié)議棧、安全傳輸、低功耗組件等等。經(jīng)過(guò)11年的累積發(fā)展,RT-Thread已經(jīng)擁有一個(gè)國(guó)內(nèi)最大的嵌入式開源社區(qū),同時(shí)被廣泛應(yīng)用于能源、車載、醫(yī)療、消費(fèi)電子等多個(gè)行業(yè)。3.科東軟件IntewellOSIntewell嵌入式操作系統(tǒng)是科東軟件自主研發(fā)工業(yè)嵌入式實(shí)時(shí)操作系統(tǒng),解決工業(yè)現(xiàn)場(chǎng)層操作系統(tǒng)的自主可控、安全可信問(wèn)題。Intewel操作系統(tǒng)基于微內(nèi)核架構(gòu),具備軟件定義控制、高實(shí)時(shí)(us級(jí)響應(yīng))、高可靠、自主可控、多業(yè)務(wù)承載、軟硬件解耦等一系列的特性,實(shí)現(xiàn)了控制、計(jì)算、網(wǎng)絡(luò)、云服務(wù)技術(shù)的融合統(tǒng)一。4.翼輝SylixOS嵌入式操作系統(tǒng)RTOS介紹,SylixOS是一個(gè)開源的跨平臺(tái)的大型實(shí)時(shí)操作系統(tǒng)(RTOS),SylixOS誕生于2006年,經(jīng)過(guò)十多年的持續(xù)開發(fā),SylixOS已成為功能最為全面的國(guó)產(chǎn)操作系統(tǒng)之一。目前已有眾多產(chǎn)品和項(xiàng)目應(yīng)用案例,行業(yè)涉及航空航天、軍事防務(wù)、軌道交通、智能電網(wǎng)、工業(yè)自動(dòng)化等諸多領(lǐng)域。SylixOS完全符合POSIX規(guī)范,開源社區(qū)豐富的自由軟件移植非常方便。5.HUAWEILiteOS鴻蒙操作系統(tǒng)Huawei-LiteOS是華為1+2+1物聯(lián)網(wǎng)解決方案的組成部分,遵循BSD-3開源許可協(xié)議,自開源以來(lái),已經(jīng)和一些廠商、家電企業(yè)達(dá)成了合作,華為希望通過(guò)開源、開放將LiteOS打造成像安卓一樣的物聯(lián)網(wǎng)終端的物聯(lián)網(wǎng)操作系統(tǒng)。6.中移OneOS中移OneOS是中國(guó)移動(dòng)專為物聯(lián)網(wǎng)領(lǐng)域設(shè)計(jì)的一款輕量級(jí)、高效率且安全的操作系統(tǒng),它支持多平臺(tái)CPU架構(gòu),具備低功耗特性,并通過(guò)模塊化設(shè)計(jì)實(shí)現(xiàn)了高度的可裁剪性。OneOS不僅兼容POSIX等標(biāo)準(zhǔn)接口,提升開發(fā)便利性,還內(nèi)置了豐富的組件與服務(wù),覆蓋從智能穿戴到工業(yè)物聯(lián)網(wǎng)的廣泛應(yīng)用場(chǎng)景。自2018年研發(fā)啟動(dòng),2020年正式面世以來(lái),OneOS不斷迭代升級(jí),致力于構(gòu)建開放的物聯(lián)網(wǎng)生態(tài)系統(tǒng),通過(guò)與產(chǎn)業(yè)鏈伙伴的深度合作,為5G時(shí)代的物聯(lián)網(wǎng)創(chuàng)新與發(fā)展提供強(qiáng)大動(dòng)力。什么是微控制器微控制器(Microcontroller,簡(jiǎn)稱MCU,又稱單片機(jī))是一種集成電路芯片,它將微型計(jì)算機(jī)的主要組成部分集成在單一的硅片上。這種集成包括了中央處理器(CPU)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM或FlashMemory用于存儲(chǔ)固件)、輸入/輸出(I/O)接口、定時(shí)器、計(jì)數(shù)器以及其它外設(shè)功能模塊。按處理器位數(shù)劃分,MCU可分為4位、8位、16位、32位和64位微處理器,如今32位MCU已經(jīng)成為主流,正在逐漸替代過(guò)去由8/16位MCU主導(dǎo)的應(yīng)用和市場(chǎng)。1971年,Intel公司推出世界上第一個(gè)微處理器芯片4004,這標(biāo)志著微處理器和微機(jī)時(shí)代的開始。隨后,Intel公司繼續(xù)推出多款微處理器,如8008(1972年)和8080(1974年),這些微處理器為后續(xù)微控制器的誕生奠定了基礎(chǔ)。1980年,Intel推出了具有里程碑意義的MCS-51(通常稱為8051),它的結(jié)構(gòu)簡(jiǎn)單、指令集易于學(xué)習(xí),且具有良好的兼容性,迅速成為業(yè)界標(biāo)準(zhǔn)。8051的成功促使了許多廠商開始生產(chǎn)兼容8051內(nèi)核的微控制器。進(jìn)入21世紀(jì),ARM架構(gòu)因其低功耗、高性能的特點(diǎn),在微控制器領(lǐng)域迅速崛起。眾多半導(dǎo)體廠商,如NXP、STMicroelectronics、TI等,開始基于ARM內(nèi)核設(shè)計(jì)微控制器,推動(dòng)了MCU在移動(dòng)通信、物聯(lián)網(wǎng)(IoT)、可穿戴設(shè)備等新興領(lǐng)域的應(yīng)用。同時(shí),32位及以上的高性能MCU逐漸成為主流,但8位和16位MCU仍因其成本優(yōu)勢(shì)在某些應(yīng)用中保持重要地位。目前微控制器的主流架構(gòu)主要包括RISC(精簡(jiǎn)指令集計(jì)算機(jī))和CISC(復(fù)雜指令集計(jì)算機(jī))兩種。RISC架構(gòu)以其高效、低功耗的特性,在嵌入式系統(tǒng)和移動(dòng)設(shè)備等資源受限的應(yīng)用中占據(jù)主導(dǎo)地位,如ARM架構(gòu)的微控制器。而CISC架構(gòu)則因其更強(qiáng)的功能和靈活性,在一些需要復(fù)雜控制和數(shù)據(jù)處理的應(yīng)用中仍有一席之地,如基于8051內(nèi)核的微控制器。隨著技術(shù)的不斷發(fā)展,新的微控制器架構(gòu)也在不斷涌現(xiàn),以滿足不同應(yīng)用的需求。國(guó)產(chǎn)微控制器發(fā)展史中國(guó)的微控制器產(chǎn)業(yè)起步相對(duì)較晚,大約在20世紀(jì)80年代,隨著國(guó)家改革開放政策的實(shí)施,國(guó)外的微控制器技術(shù)和產(chǎn)品開始進(jìn)入中國(guó)市場(chǎng)。起初,國(guó)內(nèi)主要是通過(guò)進(jìn)口和仿制國(guó)外的MCU產(chǎn)品,用于簡(jiǎn)單的控制應(yīng)用,如家電控制、工業(yè)自動(dòng)化等領(lǐng)域。進(jìn)入21世紀(jì),隨著國(guó)家對(duì)半導(dǎo)體行業(yè)的重視和政策扶持,國(guó)內(nèi)MCU企業(yè)加大研發(fā)投入,技術(shù)實(shí)現(xiàn)快速進(jìn)步。一些企業(yè)開始掌握32位MCU設(shè)計(jì)技術(shù),甚至在某些細(xì)分領(lǐng)域達(dá)到國(guó)際先進(jìn)水平。1.兆易創(chuàng)新(GigaDevice)兆易創(chuàng)新成立于2005年,總部位于中國(guó)無(wú)錫新區(qū)。公司自創(chuàng)立之初就專注于嵌入式閃存產(chǎn)品的研發(fā)和生產(chǎn),填補(bǔ)了國(guó)內(nèi)在該領(lǐng)域的空白。其主要業(yè)務(wù)涵蓋了閃存芯片的設(shè)計(jì)、開發(fā)和銷售,特別是在NorFlash領(lǐng)域取得了顯著成就,成為了全球重要的NorFlash供應(yīng)商之一。在2014年,兆易創(chuàng)新宣布進(jìn)軍微控制器(MCU)市場(chǎng),推出GD32系列微控制器。GD32系列基于ARMCortex-M內(nèi)核,具有高性能和低功耗特點(diǎn),迅速獲得市場(chǎng)認(rèn)可。2.新唐科技新唐科技于2008年7月成立,在2010年進(jìn)入微控制器(MCU)市場(chǎng),推出基于ARMCortex-M0內(nèi)核的NuMicro?系列微控制器,后面相繼推出基于ARMCortex-M4、ARMCortex-M0+、ARMCortex-M23內(nèi)核的系列微控制器,并應(yīng)用在汽車、工業(yè)控制、通用MCU領(lǐng)域。3.中科芯中科芯成立于2008年9月23日,位于江蘇省無(wú)錫市,是中國(guó)電子科技集團(tuán)公司(CETC)及其旗下多個(gè)研究所共同發(fā)起設(shè)立的。主要從事集成電路、半導(dǎo)體分立器件、電子元件及組件、照明用發(fā)光二極管(LED管)、電子產(chǎn)品等的設(shè)計(jì)、制造、銷售和技術(shù)服務(wù)。中科芯MCU基于ARMCortex-M系列內(nèi)核進(jìn)行開發(fā),涵蓋了Cortex-M0、Cortex-M3、Cortex-M4等多個(gè)大類。通過(guò)不斷的研發(fā)和創(chuàng)新,中科芯MCU產(chǎn)品已經(jīng)形成了基于ARMCortex-M0、M3、M4內(nèi)核的多個(gè)系列,包括CKS32F030、CKS32F031、CKS32F051、CKS32F103等。4.華大半導(dǎo)體華大半導(dǎo)體有限公司成立于2014年5月8日,是中國(guó)電子信息產(chǎn)業(yè)集團(tuán)有限公司(CEC)整合旗下集成電路企業(yè)而組建的專業(yè)子集團(tuán)。自成立以來(lái),迅速布局集成電路設(shè)計(jì)、制造、封測(cè)及應(yīng)用的全產(chǎn)業(yè)鏈,致力于成為集成電路設(shè)計(jì)、制造、應(yīng)用一體化解決方案提供商,其中MCU業(yè)務(wù)主要由小華半導(dǎo)體負(fù)責(zé)。國(guó)產(chǎn)微控制器發(fā)展史小華半導(dǎo)體面向家電、工業(yè)、汽車、物聯(lián)網(wǎng)等領(lǐng)域,專注于核心智能控制芯片的設(shè)計(jì),基于ARMCortex-M0、M4內(nèi)核研發(fā)MCU系列產(chǎn)品,為客戶提供通用控制MCU、電機(jī)控制MCU、汽車電子MCU、超低功耗MCU四大產(chǎn)品線。由此可見微控制器發(fā)展到現(xiàn)在很多單片機(jī)都是基于Cortex內(nèi)核ARM架構(gòu)研發(fā)出來(lái)的,請(qǐng)根據(jù)任務(wù)表,分小組調(diào)研現(xiàn)在國(guó)產(chǎn)主流的MCU芯片和國(guó)產(chǎn)操作系統(tǒng),并研究芯片與操作系統(tǒng)是否有相應(yīng)驅(qū)動(dòng),應(yīng)用在哪些領(lǐng)域?任務(wù)結(jié)束任務(wù)2嵌入式平臺(tái)開發(fā)環(huán)境搭建163HC32F460芯片簡(jiǎn)介小華半導(dǎo)體面向家電、工業(yè)、汽車、物聯(lián)網(wǎng)等領(lǐng)域,專注于核心智能控制芯片的設(shè)計(jì),為客戶提供通用控制、電機(jī)控制、汽車電子、超低功耗四大產(chǎn)品線,以及相應(yīng)算法和軟件在內(nèi)的一整套系統(tǒng)及解決方案。163小華半導(dǎo)體推出的一款高性能微控制器(MCU)產(chǎn)品線,主要定位于需要較高計(jì)算能力和多樣接口應(yīng)用的場(chǎng)合,如工業(yè)控制、家電、高端消費(fèi)電子、通信和汽車電子等領(lǐng)域里面有眾多的產(chǎn)品線。HC32F4系列的芯片有很多,本次開發(fā)選擇的是HC32F460PETB,這是一款基于ARMCortex-M4內(nèi)核的高性能微控制器(MCU)。國(guó)產(chǎn)嵌入式系統(tǒng)發(fā)展史芯片特點(diǎn):高性能內(nèi)核:基于ARMCortex-M4內(nèi)核,支持全溫域下主頻高達(dá)200MHz,為復(fù)雜計(jì)算和實(shí)時(shí)控制提供了強(qiáng)大的處理能力。大容量存儲(chǔ)器:內(nèi)置512KBFlash和192KBSRAM,滿足程序和數(shù)據(jù)存儲(chǔ)需求,確保程序的高效運(yùn)行。豐富的ADC和比較器資源:配備2個(gè)12-bit2.0MspsADC單元,以及3個(gè)高速COMP和1個(gè)PGA,支持高精度模擬信號(hào)處理。強(qiáng)大的Timer資源:提供豐富的Timer資源,支持各種定時(shí)和計(jì)數(shù)功能,滿足復(fù)雜應(yīng)用需求。多通信接口:支持4路U(S)ART、4路SPI、1路QSPI、1路CAN2.0B、1個(gè)USB2.0等通信外設(shè),實(shí)現(xiàn)與各種外部設(shè)備的靈活連接和數(shù)據(jù)交換。低功耗設(shè)計(jì):采用先進(jìn)的低功耗技術(shù),支持多種低功耗模式,有效降低系統(tǒng)功耗,延長(zhǎng)設(shè)備使用時(shí)間。近年來(lái),STM32F4系列芯片在市場(chǎng)上應(yīng)用廣泛。然而,自2020年起,STMicroelectronics的芯片價(jià)格急劇上漲,導(dǎo)致許多國(guó)內(nèi)研發(fā)項(xiàng)目紛紛轉(zhuǎn)向價(jià)格更為實(shí)惠的國(guó)產(chǎn)芯片。華大半導(dǎo)體的HC32F4系列與STM32F4芯片同樣采用ARMCortex-M4內(nèi)核,并集成浮點(diǎn)運(yùn)算單元(FPU)。HC32F4的最高主頻達(dá)到200MHz,比STM32F4的180MHz高出20MHz。此外,HC32F4的功能引腳能夠在一定范圍內(nèi)自由映射,支持多功能引腳的靈活應(yīng)用,而STM32F4則無(wú)法做到這一點(diǎn)。這些優(yōu)勢(shì)使得國(guó)產(chǎn)芯片能夠利用STMicroelectronics芯片的先前應(yīng)用經(jīng)驗(yàn),并以更優(yōu)化的性能推出同類產(chǎn)品。HC32F460芯片引腳簡(jiǎn)介HC32F460PETB為100個(gè)引腳,VCC供電為1.8V至3.6V電壓,VSS為電源地。HC32F460總線介紹HC32F460總線由32位多層AHB總線矩陣構(gòu)成,可實(shí)現(xiàn)以下主機(jī)總線和從機(jī)總線的互連:主機(jī)總線Cortex-M4F內(nèi)核CPU-I總線,CPU-D總線,CPU-S總線系統(tǒng)DMA_1總線,系統(tǒng)DMA_2總線USBFS_DMA總線、從機(jī)總線FlashICODE總線、FlashDCODE總線、FlashMCODE總線(CPU以外其他主機(jī)訪問(wèn)Flash的總線)SRAMH總線(SRAMH32kB)SRAMA總線(SRAM164KB)SRAMB總線(SRAM264KB,SRAM328KB,Ret_SRAM4KB)APB1外設(shè)總線(AOS/EMB/Timers/SPI/USART/I2S)APB2外設(shè)總線(Timers/SPI/USART/I2S)APB3外設(shè)總線(ADC/PGA/TRNG)APB4外設(shè)總線(FCM/WDT/CMP/OTS/RTC/WKTM/I2C)AHB1外設(shè)總線(KEYSCAN/INTC/DCU/GPIO/SYSC)AHB2外設(shè)總線(CAN/SDIOC)AHB3外設(shè)總線(AES/HASH/CRC/USBFS)AHB4外設(shè)總線(SDIOC)AHB5外設(shè)總線(QSPI)總線負(fù)責(zé)實(shí)現(xiàn)主機(jī)對(duì)從機(jī)的讀寫訪問(wèn)。主機(jī)模塊工作頻率比從機(jī)模塊高(如CPU-S訪問(wèn)RTC)時(shí),總線自動(dòng)進(jìn)行降頻同步處理。主機(jī)模塊工作頻率比從機(jī)模塊低(如USBFS_DMA訪問(wèn)SRAMH)時(shí),總線自動(dòng)進(jìn)行升頻同步處理。通過(guò)總線矩陣,不同主機(jī)總線的訪問(wèn)目標(biāo)不沖突時(shí),各訪問(wèn)能夠同時(shí)進(jìn)行。例如CPU-I訪問(wèn)Flash,CPU-D訪問(wèn)SRAMH,CPU-S訪問(wèn)APB外設(shè),DMA_1訪問(wèn)SRAMA,DMA_2訪問(wèn)SRAMB,USBFS_DMA訪問(wèn)AHB5的外部擴(kuò)展空間,這些訪問(wèn)可以同時(shí)進(jìn)行。HC32F460時(shí)鐘介紹時(shí)鐘控制單元提供了一系列頻率的時(shí)鐘功能,包括:一個(gè)外部高速振蕩器、一個(gè)外部低速振蕩器、兩個(gè)PLL時(shí)鐘、一個(gè)內(nèi)部高速振蕩器、一個(gè)內(nèi)部中速振蕩器、一個(gè)內(nèi)部低速振蕩器、一個(gè)SWDT專用內(nèi)部低速振蕩器、時(shí)鐘預(yù)分頻器、時(shí)鐘多路復(fù)用和時(shí)鐘門控電路。AHB、APB和Cortex-M4時(shí)鐘都源自系統(tǒng)時(shí)鐘,最大運(yùn)行時(shí)鐘頻率可以達(dá)到200MHz,,系統(tǒng)時(shí)鐘的源可選擇6個(gè)時(shí)鐘源:1)外部高速振蕩器(XTAL)2)外部低速振蕩器(XTAL32)3)MPLL時(shí)鐘(MPLL)4)內(nèi)部高速振蕩器(HRC)5)內(nèi)部中速振蕩器(MRC)6)內(nèi)部低速振蕩器(LRC)時(shí)鐘源規(guī)格外部高速振蕩器(XTAL)晶振的頻率范圍:4~25MHz外部時(shí)鐘輸入:最高25MHz振蕩器故障檢測(cè)功能外部低速振蕩器(XTAL32)晶振的頻率:32.768KHzMPLL時(shí)鐘(MPLL)輸入時(shí)鐘:外部高速振蕩器或者內(nèi)部高速振蕩器MPLL輸入時(shí)鐘分頻:1~24任意分頻可選PFD輸入頻率=輸入時(shí)鐘/MPLL輸入時(shí)鐘分頻,頻率范圍1MHz~25MHzMPLL倍頻系數(shù):20~480倍VCO振蕩頻率:240MHz~480MHzMPLLQ輸出分頻比:2~16任意分頻MPLLP輸出分頻比:2~16任意分頻MPLLR輸出分頻比:2~16任意分頻MPLLP輸出頻率=(輸入時(shí)鐘/MPLL輸入時(shí)鐘分頻)*MPLL倍頻系數(shù)/MPLLP輸出分頻比MPLLQ輸出頻率=(輸入時(shí)鐘/MPLL輸入時(shí)鐘分頻)*MPLL倍頻系數(shù)/MPLLQ輸出分頻比MPLLR輸出頻率=(輸入時(shí)鐘/MPLL輸入時(shí)鐘分頻)*MPLL倍頻系數(shù)/MPLLR輸出分頻比時(shí)鐘源規(guī)格UPLL時(shí)鐘(UPLL)輸入時(shí)鐘:外部高速振蕩器或者內(nèi)部高速振蕩器UPLL輸入時(shí)鐘分頻:1~24任意分頻可選PFD輸入頻率=輸入時(shí)鐘/UPLL輸入時(shí)鐘分頻,頻率范圍1MHz~25MHzUPLL倍頻系數(shù):20~480倍VCO振蕩頻率:240MHz~480MHzUPLLP輸出分頻比:2~16任意分頻UPLLQ輸出分頻比:2~16任意分頻UPLLR輸出分頻比:2~16任意分頻UPLLP輸出頻率=(輸入時(shí)鐘/UPLL輸入時(shí)鐘分頻)*UPLL倍頻系數(shù)/UPLLP輸出分頻比UPLLQ輸出頻率=(輸入時(shí)鐘/UPLL輸入時(shí)鐘分頻)*UPLL倍頻系數(shù)/UPLLQ輸出分頻比UPLLR輸出頻率=(輸入時(shí)鐘/UPLL輸入時(shí)鐘分頻)*UPLL倍頻系數(shù)/UPLLR輸出分頻比內(nèi)部高速振蕩器(HRC)頻率:16MHz或者20MHz用戶可寫寄存器對(duì)頻率微調(diào)內(nèi)部中速振蕩器(MRC)頻率:8MHz用戶可寫寄存器對(duì)頻率微調(diào)內(nèi)部低速振蕩器(LRC)頻率:32.768KHz用戶可寫寄存器對(duì)頻率微調(diào)可用作RTC的計(jì)數(shù)時(shí)鐘,喚醒定時(shí)器WKTM的計(jì)數(shù)時(shí)鐘,XTAL32的備份時(shí)鐘SWDT專用內(nèi)部低速振蕩器(SWDTRC)頻率:10KHz時(shí)鐘控制單元還提供時(shí)鐘頻率測(cè)量功能。時(shí)鐘頻率測(cè)量電路(FCM)使用測(cè)定基準(zhǔn)時(shí)鐘對(duì)測(cè)定對(duì)象時(shí)鐘進(jìn)行監(jiān)視測(cè)定。在超出設(shè)定范圍時(shí)發(fā)生中斷或者復(fù)位。SWDT有獨(dú)立的時(shí)鐘源:SWDT專用內(nèi)部低速振蕩器(SWDTLRC)。實(shí)時(shí)時(shí)鐘(RTC)使用外部低速振蕩器或者內(nèi)部低速振蕩器作為時(shí)鐘源。USB-FS的48MHz時(shí)鐘可以選擇系統(tǒng)時(shí)鐘,MPLL,UPLL作為時(shí)鐘源。對(duì)于每一個(gè)時(shí)鐘源,在未使用時(shí)都可以單獨(dú)打開和關(guān)閉,以降低功耗。硬件平臺(tái)介紹ZW-M601是一張智能倉(cāng)儲(chǔ)防火檢測(cè)系統(tǒng)應(yīng)用板卡,如圖12所示,板載溫度傳感器,可通過(guò)滑動(dòng)開關(guān)選擇溫度傳感器輸出方式,該傳感器輸出信號(hào)為模擬量,可以使用比較器輸出驅(qū)動(dòng)蜂鳴器報(bào)警,也可以使用單片機(jī)ADC采集傳感器,根據(jù)自己設(shè)定的值再去驅(qū)動(dòng)蜂鳴器報(bào)警。ZW-M604是一張智慧園區(qū)門禁系統(tǒng)應(yīng)用板卡,如圖所示,板載RFID和指紋模組,使用繼電器模擬門的開關(guān),通過(guò)蜂鳴器可提示解鎖是否成功。ZW-M606是一張智能大棚溫濕度監(jiān)測(cè)系統(tǒng)應(yīng)用板卡,如圖所示,板載溫濕度傳感器和藍(lán)牙模組,該傳感器使用I2C信號(hào)輸出,通過(guò)外置接口使用單片機(jī)采集溫濕度數(shù)據(jù),可將溫濕度數(shù)據(jù)通過(guò)藍(lán)牙模組上傳到手機(jī)上。ZW-M607是一張可穿戴系統(tǒng)應(yīng)用板卡,也是本書的主控制板卡,所有實(shí)驗(yàn)任務(wù)都是基于這張板卡完成,如圖所示,板載OLED、心率血氧、陀螺儀模組,主芯片使用HC32F460PETB,板載下載器直接使用USB轉(zhuǎn)方口線下載程序??蓪?duì)心率血氧和陀螺儀采集數(shù)據(jù),然后通過(guò)OLED顯示這些數(shù)據(jù)。開發(fā)環(huán)境搭建MDK源自德國(guó)的KEIL公司,是RealViewMDK的簡(jiǎn)稱。在全球MDK被超過(guò)10萬(wàn)的嵌入式開發(fā)工程師使用。本次項(xiàng)目使用版本為:MDK5.14,該版本使用uVision5IDE集成開發(fā)環(huán)境,是目前針對(duì)ARM處理器,尤其是CortexM內(nèi)核處理器的最佳開發(fā)工具。MDK5向后兼容MDK和MDK3等,以前的項(xiàng)目同樣可以在MDK5上進(jìn)行開發(fā)(但是頭文件方面得全部自己添加),MDK5同時(shí)加強(qiáng)了針對(duì)Cortex-M微控制器開發(fā)的支持,并且對(duì)傳統(tǒng)的開發(fā)模式和界面進(jìn)行升級(jí),MDK5由兩個(gè)部分組成:MDKCore和SoftwarePacks。其中,SoftwarePacks可以獨(dú)立于工具鏈進(jìn)行新芯片支持和中間庫(kù)的升級(jí)。從上圖可以看出,MDKCore又分成四個(gè)部分:uVisionIDEwithEditor(編輯器),ARMC/C++Compiler(編譯器),PackInstaller(包安裝器),uVisionDebuggerwithTrace(調(diào)試跟蹤器)。uVisionIDE從MDK4.7版本開始就加入了代碼提示功能和語(yǔ)法動(dòng)態(tài)檢測(cè)等實(shí)用功能,相對(duì)于以往的IDE改進(jìn)很大。SoftwarePacks(包安裝器)又分為:Device(芯片支持),CMSIS(ARMCortex微控制器軟件接口標(biāo)準(zhǔn))和Mdidleware(中間庫(kù))三個(gè)小部分,通過(guò)包安裝器,我們可以安裝最新的組件,從而支持新的器件、提供新的設(shè)備驅(qū)動(dòng)庫(kù)以及最新例程等,加速產(chǎn)品開發(fā)進(jìn)度。同以往的MDK不同,以往的MDK把所有組件到包含到了一個(gè)安裝包里面,顯得十分“笨重”,MDK5則不一樣,MDKCore是一個(gè)獨(dú)立的安裝包,它并不包含器件支持和設(shè)備驅(qū)動(dòng)等組件,但是一般都會(huì)包括CMSIS組件,大小350M左右,相對(duì)于MDK4.70A的500多M,瘦身不少,MDK5安裝包可以在:/demo/eval/arm.htm下載到。而器件支持、設(shè)備驅(qū)動(dòng)、CMSIS等組件,則可以點(diǎn)擊MDK5的BuildToolbar的最后一個(gè)圖標(biāo)調(diào)出PackInstaller,來(lái)進(jìn)行各種組件的安裝。也可以在/dd2/pack這個(gè)地址下載,然后進(jìn)行安裝。MDK安裝安裝文件路徑:國(guó)產(chǎn)嵌入式技術(shù)及應(yīng)用實(shí)踐資源\開發(fā)工具及軟件資料\MDK522.EXE。第一步:安裝MDK安裝方法與安裝普通軟件一樣,默認(rèn)Next。隨便填寫信息。選擇安裝路徑。正在安裝。第二步:HC32F460PACK安裝安裝文件路徑:國(guó)產(chǎn)嵌入式技術(shù)及應(yīng)用實(shí)踐資源\開發(fā)工具及軟件資料\HC32F460_IDE_Rev1.0.11.zip解壓這個(gè)壓縮包,直接雙擊運(yùn)行pack文件即可,安裝文件會(huì)自動(dòng)安裝到KEIL指定目錄。第三步:注冊(cè)打開MDK5,在File/LicenseManagement…,打開Lincense管理界面如圖所示。使用CID從正規(guī)渠道獲得序列號(hào),如圖所示,說(shuō)明:CID與LIC一般為一機(jī)一碼,本碼對(duì)其它計(jì)算機(jī)上的軟件無(wú)用。復(fù)制以上序列號(hào)到License管理界面的LIC框,然后AddLIC。如圖所示。
工程文件介紹工程模版文件路徑:國(guó)產(chǎn)嵌入式技術(shù)及應(yīng)用實(shí)踐資源\項(xiàng)目代碼\工程模版在工程模板中,每個(gè)目錄都扮演著重要的角色,它們對(duì)于提高文檔的可讀性和項(xiàng)目的組織性至關(guān)重要。一個(gè)合理的目錄結(jié)構(gòu)能夠幫助用戶更快地找到所需的文件和信息,使項(xiàng)目的管理和維護(hù)變得更加高效。這不僅使項(xiàng)目看起來(lái)更加有條理,還能提高用戶的工作效率,使其更加易于理解和使用。文件夾目錄:APP:這里存放著應(yīng)用程序的主要代碼,是項(xiàng)目功能實(shí)現(xiàn)的核心部分。BSP:存放與硬件相關(guān)的驅(qū)動(dòng)程序,確保硬件能夠正常工作并與軟件通信。cmsis:官方提供的系統(tǒng)文件,包含了一些標(biāo)準(zhǔn)接口和庫(kù),方便開發(fā)者進(jìn)行嵌入式系統(tǒng)開發(fā)。hc32_ll_driver:這是官方提供的低層級(jí)驅(qū)動(dòng)庫(kù)文件,通常包含了直接與硬件通信的函數(shù)和接口。config:配置工具。source:主程序代碼存放處,包含項(xiàng)目的主要邏輯和功能實(shí)現(xiàn)。output:編譯完成后,這里會(huì)存放生成的調(diào)試信息(.axf)、預(yù)覽信息(.crf)以及可執(zhí)行文件(.hex)等。這些文件對(duì)于項(xiàng)目的調(diào)試、測(cè)試和部署都非常重要。README:程序說(shuō)明文件,詳細(xì)描述了項(xiàng)目的功能、使用方法、依賴關(guān)系等重要信息。閱讀這個(gè)文件有助于用戶更快地理解和使用項(xiàng)目。template.uvprojx:這是項(xiàng)目的工程文件,包含了項(xiàng)目的所有配置和設(shè)置信息。工程模版├──APP├──BSP├──cmsis│├──Device│└──Include├──config├──hc32_ll_driver│├──inc│└──src├──output│└──debug├──source│├──main.c│└──main.h├──JLinkSettings.ini├──README.txt├──EventRecorderStub.scvd├──startup_hc32f460.s├──template.uvguix.acer├──template.uvoptx└──template.uvprojx程序工程目錄cmsis:此目錄存放系統(tǒng)文件和啟動(dòng)文件。source:此目錄用于存放主函數(shù)和其他主要的程序代碼。所有的邏輯處理、功能實(shí)現(xiàn)等都在這里進(jìn)行。driver:此目錄存放的是驅(qū)動(dòng)庫(kù)文件,包括各種外設(shè)的驅(qū)動(dòng)程序,如GPIO、UART、SPI等。這些驅(qū)動(dòng)程序是主程序與硬件之間進(jìn)行交互的橋梁。BSP:硬件驅(qū)動(dòng)文件存放的目錄。這里包含了與特定硬件板卡相關(guān)的驅(qū)動(dòng)代碼,用于初始化硬件板卡上的各個(gè)模塊和接口。Readme:存放程序的系統(tǒng)說(shuō)明文件。程序工程├──cmsis│├──startup_hc32f460.s│└──startup_hc32f460.c├──source│└──main.c├──driver│├──hc32_ll.c………………│└──hc32_ll_fcg.c├──BSP│└──BSP_CLK.c└──Readme└──README.txt新建工程測(cè)試M607板卡是一款集成了高性能核心處理器HC32F460PETB的嵌入式開發(fā)平臺(tái)。開發(fā)板擁有豐富的板載資源,包括陀螺儀、心率血氧傳感器、LED、KEY(按鍵)、AMOLED顯示屏、藍(lán)牙模塊和外置引腳的牛角座等,為嵌入式系統(tǒng)開發(fā)者提供了一個(gè)方便、高效的開發(fā)環(huán)境。接下來(lái)進(jìn)行LED閃爍測(cè)試程序編寫,新復(fù)制工程模板保留原始工程模板,打開工程模板,找到template.uvprojx雙擊打開。編寫LED閃爍程序,在主程序main.c文件中進(jìn)行實(shí)現(xiàn)。這時(shí)候可以觀察到板卡M607的LED6閃爍。說(shuō)明:如果自己寫的代碼有問(wèn)題,請(qǐng)參考測(cè)試工程代碼。路徑:國(guó)產(chǎn)嵌入式技術(shù)及應(yīng)用實(shí)踐資源\項(xiàng)目代碼\項(xiàng)目一任務(wù)結(jié)束項(xiàng)目2倉(cāng)儲(chǔ)火災(zāi)檢測(cè)終端設(shè)計(jì)與開發(fā)引導(dǎo)案例隨著物流行業(yè)的快速發(fā)展和倉(cāng)儲(chǔ)需求的不斷增長(zhǎng),倉(cāng)儲(chǔ)安全成為了一個(gè)至關(guān)重要的問(wèn)題?;馂?zāi)作為倉(cāng)儲(chǔ)中常見的安全隱患之一,一旦發(fā)生,不僅會(huì)造成巨大的財(cái)產(chǎn)損失,還可能威脅到人員的生命安全。因此,開發(fā)一款高效、可靠的倉(cāng)儲(chǔ)火災(zāi)檢測(cè)終端顯得尤為重要。本項(xiàng)目基于嵌入式技術(shù),設(shè)計(jì)并實(shí)現(xiàn)一款倉(cāng)儲(chǔ)火災(zāi)檢測(cè)終端,旨在解決傳統(tǒng)火災(zāi)檢測(cè)方法存在的局限性,提高倉(cāng)儲(chǔ)火災(zāi)預(yù)警的準(zhǔn)確性和時(shí)效性。通過(guò)集成多種傳感器和實(shí)時(shí)嵌入式系統(tǒng),實(shí)現(xiàn)對(duì)倉(cāng)儲(chǔ)環(huán)境的多維度監(jiān)測(cè)和火災(zāi)預(yù)警,為倉(cāng)儲(chǔ)安全管理提供有效的技術(shù)手段。項(xiàng)目方案設(shè)計(jì)請(qǐng)根據(jù)示范案例,分析倉(cāng)儲(chǔ)火災(zāi)的防護(hù)需求。經(jīng)過(guò)詳盡的調(diào)查研究后,設(shè)計(jì)初步方案。選擇適宜的技術(shù)路徑,選定適當(dāng)?shù)慕涌谶M(jìn)行系統(tǒng)集成,最終形成完整的項(xiàng)目方案。具體任務(wù)可參考任務(wù)清單。終端結(jié)構(gòu)簡(jiǎn)介在現(xiàn)代社會(huì)中,火災(zāi)是各類場(chǎng)所常見的安全風(fēng)險(xiǎn),尤其是在倉(cāng)庫(kù)等大型設(shè)施中更為突出。為了有效預(yù)防火災(zāi)事故的發(fā)生,倉(cāng)庫(kù)火焰監(jiān)測(cè)報(bào)警系統(tǒng)成為了必不可少的安全裝置。該系統(tǒng)的設(shè)計(jì)旨在及時(shí)偵測(cè)火焰并迅速發(fā)出警報(bào),以協(xié)助工作人員迅速應(yīng)對(duì),最大限度地減少火災(zāi)可能造成的損失。設(shè)計(jì)目的倉(cāng)庫(kù)火焰監(jiān)測(cè)報(bào)警系統(tǒng)的主要設(shè)計(jì)目的在于確保倉(cāng)庫(kù)內(nèi)物品和人員的安全。通過(guò)實(shí)時(shí)監(jiān)測(cè)火焰的情況,及時(shí)發(fā)現(xiàn)火災(zāi)隱患,并迅速采取必要措施進(jìn)行處理。這不僅有助于提高工作效率,還能有效預(yù)防火災(zāi)對(duì)倉(cāng)庫(kù)造成的重大損失。系統(tǒng)組成典型的倉(cāng)庫(kù)火焰監(jiān)測(cè)報(bào)警系統(tǒng)通常由火焰探測(cè)器、報(bào)警器和控制器等多個(gè)關(guān)鍵組件組成,如圖32所示?;鹧嫣綔y(cè)器能夠根據(jù)火焰的特定特征進(jìn)行監(jiān)測(cè),一旦探測(cè)到火焰,即會(huì)向控制器發(fā)送信號(hào),觸發(fā)報(bào)警器發(fā)出緊急警報(bào)。通過(guò)這些組件的有機(jī)配合,系統(tǒng)能夠?qū)崿F(xiàn)對(duì)火災(zāi)的快速響應(yīng)和實(shí)時(shí)監(jiān)測(cè)功能。系統(tǒng)優(yōu)勢(shì)倉(cāng)庫(kù)火焰監(jiān)測(cè)報(bào)警系統(tǒng)設(shè)計(jì)具有多重優(yōu)勢(shì)。首先,它能夠全天候、全時(shí)段進(jìn)行火災(zāi)監(jiān)測(cè),有效保障倉(cāng)庫(kù)的安全性。其次,系統(tǒng)響應(yīng)速度快,一旦發(fā)生火災(zāi),立即觸發(fā)報(bào)警器,提醒工作人員及時(shí)處置。此外,系統(tǒng)還具備自動(dòng)化特性,可以減輕工作人員的負(fù)擔(dān),提高工作效率。通過(guò)以上設(shè)計(jì)和功能,倉(cāng)庫(kù)火焰監(jiān)測(cè)報(bào)警系統(tǒng)不僅增強(qiáng)了火災(zāi)預(yù)警和處理能力,還為倉(cāng)庫(kù)管理者提供了可靠的安全保障,有效應(yīng)對(duì)各種突發(fā)火災(zāi)風(fēng)險(xiǎn)?;馂?zāi)傳感器簡(jiǎn)介火焰作為一種化學(xué)燃燒現(xiàn)象,具備發(fā)光發(fā)熱、閃爍上升的特征,并需要可燃物、氧化劑及足夠高溫三要素。其結(jié)構(gòu)包含焰心、內(nèi)焰、外焰,各具特色?;鹧媸侨紵^(guò)程中產(chǎn)生的可見光和高溫的物理現(xiàn)象,具有特定的光譜特征和高溫輻射,同時(shí)伴隨著煙霧和有害氣體的產(chǎn)生。本次任務(wù)使用的是溫度傳感器用來(lái)監(jiān)測(cè)火焰,溫度傳感器可以用晶體管測(cè)溫,基本原理是利用晶體管(尤其是其PN結(jié))的電學(xué)特性隨溫度變化的性質(zhì)。晶體管內(nèi)部的PN結(jié)(如在雙極型晶體管中的發(fā)射極-基極結(jié)或集電極-基極結(jié))的正向電壓降(通常稱為導(dǎo)通電壓)和反向飽和電流等參數(shù)會(huì)隨溫度變化而變化,這一現(xiàn)象可以被用來(lái)設(shè)計(jì)成溫度傳感器。德州儀器TI生產(chǎn)的LM50內(nèi)部包含一個(gè)溫度敏感的PN結(jié),當(dāng)溫度發(fā)生變化時(shí),這個(gè)PN結(jié)的電特性也會(huì)隨之改變。LM50的輸出一個(gè)電壓信號(hào),其大小與傳感器所測(cè)量的溫度成正比。具體來(lái)說(shuō),它的輸出電壓與溫度之間存在線性關(guān)系,使得通過(guò)測(cè)量這個(gè)電壓值,可以準(zhǔn)確地推算出環(huán)境的實(shí)際溫度。LM50外形及引腳分布如圖所示。報(bào)警燈簡(jiǎn)介報(bào)警燈是一種用于傳達(dá)緊急情況、警告或狀態(tài)信息的視覺信號(hào)裝置,當(dāng)倉(cāng)庫(kù)有火災(zāi)時(shí),傳感器監(jiān)測(cè)到,報(bào)警燈立即報(bào)警,常見報(bào)警燈如圖所示。有些報(bào)警燈采用紅、黃、綠三種顏色,每種顏色代表特定的信息:紅色:通常表示緊急情況、危險(xiǎn)或需要立即停止的信號(hào),如火災(zāi)報(bào)警、設(shè)備嚴(yán)重故障。黃色:表示警告或需要注意的情況,如設(shè)備即將故障、工作環(huán)境中的潛在危險(xiǎn)。綠色:代表安全、正常運(yùn)行或允許通行的狀態(tài),如系統(tǒng)運(yùn)行良好、出口指示?;馂?zāi)報(bào)警按鍵簡(jiǎn)介火災(zāi)報(bào)警按鍵(FireAlarmButton,也稱火災(zāi)手動(dòng)報(bào)警按鈕、緊急報(bào)警按鈕)是一種用于手動(dòng)觸發(fā)火災(zāi)報(bào)警系統(tǒng)的設(shè)備。它通常安裝在建筑物的顯眼位置,供人員在發(fā)現(xiàn)火災(zāi)或煙霧時(shí)手動(dòng)啟動(dòng)報(bào)警,以提醒其他人員和自動(dòng)聯(lián)動(dòng)消防系統(tǒng)?;馂?zāi)報(bào)警按鍵是火災(zāi)報(bào)警系統(tǒng)中不可或缺的組成部分,提供了快速、直接的報(bào)警觸發(fā)手段。主要特性1)手動(dòng)觸發(fā)功能:通過(guò)手動(dòng)按壓或擊碎玻璃的方式觸發(fā)報(bào)警,向火災(zāi)報(bào)警控制器發(fā)送報(bào)警信號(hào)。優(yōu)勢(shì):能夠在自動(dòng)報(bào)警系統(tǒng)未檢測(cè)到火災(zāi)的情況下,提供人工干預(yù)的緊急報(bào)警手段。2)結(jié)構(gòu)簡(jiǎn)單按壓式:通常設(shè)計(jì)為按壓按鈕,按下即觸發(fā)報(bào)警。擊碎玻璃式:按壓后擊碎內(nèi)部玻璃片,觸發(fā)報(bào)警機(jī)制(也稱“破玻璃”設(shè)計(jì))。3)可靠性高耐用性:設(shè)計(jì)用于長(zhǎng)期使用,能夠在惡劣環(huán)境下穩(wěn)定工作。防誤操作:通常需要一定的力度按壓或擊碎玻璃,減少誤報(bào)警的可能性?;馂?zāi)報(bào)警按鍵作為火災(zāi)報(bào)警系統(tǒng)中的重要組成部分,為各種場(chǎng)所提供了手動(dòng)觸發(fā)火災(zāi)報(bào)警的手段。其簡(jiǎn)單可靠的設(shè)計(jì)能夠在自動(dòng)報(bào)警系統(tǒng)失效或未觸發(fā)時(shí),提供人工干預(yù)的緊急報(bào)警功能?;馂?zāi)報(bào)警按鍵的多種觸發(fā)方式、安裝形式和高可靠性,使其廣泛應(yīng)用于商業(yè)建筑、工業(yè)設(shè)施、住宅區(qū)、教育機(jī)構(gòu)、醫(yī)療機(jī)構(gòu)和公共交通等領(lǐng)域,為這些場(chǎng)所提供了關(guān)鍵的安全保障。項(xiàng)目決策依據(jù)項(xiàng)目具體需求,制定多種可行性任務(wù)實(shí)施方案,并開展全面評(píng)估,比較各方案的優(yōu)勢(shì)與劣勢(shì),以確保選出最優(yōu)方案。隨后,正式確認(rèn)該方案并詳細(xì)填寫任務(wù)抉擇單,以指導(dǎo)后續(xù)行動(dòng)。國(guó)產(chǎn)微控制器發(fā)展史項(xiàng)目計(jì)劃根據(jù)項(xiàng)目方案,制定詳細(xì)的任務(wù)計(jì)劃,明確時(shí)間節(jié)點(diǎn)和責(zé)任人,并落實(shí)具體的任務(wù)安排。項(xiàng)目檢查與評(píng)價(jià)項(xiàng)目實(shí)施結(jié)束后,對(duì)項(xiàng)目進(jìn)行檢查??梢允褂眯〗M互評(píng)等方式進(jìn)行項(xiàng)目評(píng)價(jià),項(xiàng)目評(píng)價(jià)單如下。任務(wù)結(jié)束任務(wù)1倉(cāng)儲(chǔ)火災(zāi)報(bào)警燈設(shè)計(jì)與開發(fā)任務(wù)情報(bào)ZW-M607板卡使用的核心芯片為HC32F460PETB,總共100個(gè)引腳,通用的GPIO有83個(gè),支持通用輸入輸出功能,每個(gè)IO最多可選擇64個(gè)復(fù)用功能,可以同時(shí)選擇2個(gè)功能有效(不支持2個(gè)輸出功能同時(shí)有效),GPIO基本結(jié)構(gòu)圖如圖所示。注意事項(xiàng):PB11端口與MD復(fù)用,僅具有輸入功能,無(wú)輸出功能。GPIO主要特性:每組Port配有16個(gè)I/OPin,根據(jù)實(shí)際配置可能不足16個(gè)。支持上拉。支持推挽,開漏輸出模式。支持高,中,低型驅(qū)動(dòng)模式。支持外部中斷的輸入。支持I/Opin周邊功能復(fù)用,一個(gè)I/Opin最多可具有64個(gè)可選擇的復(fù)用功能。各個(gè)I/Opin可獨(dú)立編程。各個(gè)I/Opin可以選擇2個(gè)功能同時(shí)有效(不支持2個(gè)輸出功能同時(shí)有效)。GPIO結(jié)構(gòu)圖分為三個(gè)區(qū)域:PORT寄存器、PORT控制器、IOCell。PORT寄存器在HC32F460軟件手冊(cè)中通用IO(GPIO)有詳細(xì)說(shuō)明,里面的寄存器數(shù)量眾多,挑選常用的寄存器進(jìn)行說(shuō)明。HC32F460軟件手冊(cè)路徑:國(guó)產(chǎn)嵌入式技術(shù)及應(yīng)用實(shí)踐資源\項(xiàng)目資料\RM_HC32F460_F45x_A460系列參考手冊(cè)_Rev1.6本次任務(wù)常用寄存器:通用控制寄存器(PCRxy)寫保護(hù)寄存器(PWPR)通用輸出置位寄存器(POSRx)通用輸出復(fù)位寄存器(PORRx)通用輸出翻轉(zhuǎn)寄存器(POTRx)每次使用GPIO時(shí),都會(huì)用到通用控制寄存器(PCRxy)配置GPIO參數(shù),該寄存器可以配置GPIO引腳基本輸入輸出和中斷功能,控制GPIO引腳輸出電平,獲取GPIO引腳狀態(tài)。GPIO基本結(jié)構(gòu)圖最右邊有一個(gè)上拉電阻,可以設(shè)置GPIO引腳初始狀態(tài)為高電平。除BFE寄存器沒(méi)有包含外,其他寄存器全部包含。寫保護(hù)寄存器(PWPR)關(guān)聯(lián)PSPCR,PCCR,PINAER,PCRxy,PFSRxy寄存器,WP[7:0]位當(dāng)b15~b8寫入值為0xA5時(shí),b0值寫入WE,當(dāng)寫0xA5以外值時(shí),WE自動(dòng)清零;WE位寫1允許關(guān)聯(lián)的寄存器修改,寫0則禁止。通用輸出置位寄存器(POSRx)是設(shè)置HC32F460引腳輸出高電平,此寄存器的讀出值始終為0x0000。32bit訪問(wèn)時(shí),同一I/O的POR[y]與POS[y]同時(shí)寫1時(shí),POR[y]優(yōu)先級(jí)更高,即對(duì)應(yīng)POUT[y]清零。通用輸出復(fù)位寄存器(PORRx),是設(shè)置HC32F460引腳輸出高電平。此寄存器的讀出值始終為0x0000。通用輸出翻轉(zhuǎn)寄存器(POTRx),可將HC32F460引腳電平進(jìn)行取反。此寄存器的讀出值始終為0x0000。GPIO編程說(shuō)明小華半導(dǎo)體公司提供的驅(qū)動(dòng)庫(kù)包含了HC32F460芯片的GPIO驅(qū)動(dòng),相關(guān)的定義和說(shuō)明可以在hc32_ll_gpio.h和hc32_ll_gpio.c文件中找到。GPIO編程定義說(shuō)明HC32F460中定義了6個(gè)組,PORTA到PORTH,這個(gè)型號(hào)HC32F460PETB涵蓋這6個(gè)組,其他芯片請(qǐng)查看相應(yīng)的封裝。#defineGPIO_PORT_A(0x00U)/*!<PortAselected*/#defineGPIO_PORT_B(0x01U)/*!<PortBselected*/#defineGPIO_PORT_C(0x02U)/*!<PortCselected*/#defineGPIO_PORT_D(0x03U)/*!<PortDselected*/#defineGPIO_PORT_E(0x04U)/*!<PortEselected*/#defineGPIO_PORT_H(0x05U)/*!<PortHselected*/每組引腳號(hào)0到15,總共16個(gè)引腳。#defineGPIO_PIN_00(0x0001U)/*!<Pin00selected*/……………………#defineGPIO_PIN_15(0x8000U)/*!<Pin15selected*/GPIO常用庫(kù)函數(shù)說(shuō)明關(guān)于的HC32F460的GPIO常用庫(kù)函數(shù)和預(yù)定義都在文件hc32_ll_gpio.h和hc32_ll_gpio.c文件中,下列函數(shù)可在文件中找到。LED燈初始化ZW-M607可穿戴系統(tǒng)應(yīng)用板卡板載4顆LED燈LED3~LED6,對(duì)應(yīng)引腳PD11~PD8,LED默認(rèn)接入高電平3.3V,MCU引腳低電平時(shí),LED燈點(diǎn)亮,如圖所示。在對(duì)報(bào)警燈初始化需要在工程模板的BSP文件夾中,新建文件BSP_LED.c和BSP_LED.h用于存放與LED相關(guān)的程序。在BSP_LED.h文件中,對(duì)所需的端口和引腳進(jìn)行宏定義,以便于后續(xù)的管理。以下是一個(gè)LED3引腳定義的示例。/*LED3Port/Pindefinition*/#defineLED3_PORT(GPIO_PORT_D)#defineLED3_PIN(GPIO_PIN_11)剩余的宏定義LED可以根據(jù)原理圖上的引腳標(biāo)號(hào)進(jìn)行續(xù)寫,在BSP_LED.c文件寫LED初始化函數(shù)代碼。voidLED_Init(void){stc_gpio_init_tstcGpioInit;//定義結(jié)構(gòu)體(void)GPIO_StructInit(&stcGpioInit);//初始化結(jié)構(gòu)體stcGpioInit.u16PinState=PIN_STAT_SET;//設(shè)置為高電平stcGpioInit.u16PinDir=PIN_DIR_OUT;//設(shè)置為輸出(void)GPIO_Init(LED3_PORT,LED3_PIN|LED4_PIN|LED5_PIN|LED6_PIN,&stcGpioInit);//初始化LED3、LED4、LED5、LED6引腳}在BSP_LED.h文件中預(yù)定義了LED3的功能函數(shù)開燈、關(guān)燈、取反。/*LED3functiondefinition*/#defineLED3_ON(GPIO_ResetPins(LED3_PORT,LED3_PIN))#defineLED3_OFF(GPIO_SetPins(LED3_PORT,LED3_PIN))#defineLED3_TOGGLE(GPIO_TogglePins(LED3_PORT,LED3_PIN))在報(bào)警燈初始化完成后,把燈的頭文件BSP_LED.h,放進(jìn)main.h進(jìn)行聲明。#ifndef__MAIN_H__#define__MAIN_H__#include"hc32_ll.h"#include"BSP_CLK.h"#include"BSP_LED.h"#endif/*__MAIN_H__*/任務(wù)實(shí)現(xiàn)第一步: 可穿戴系統(tǒng)應(yīng)用板卡(ZW-M607)使用12VDC電源供電,插入后按下電源開關(guān)。第二步: 使用USB轉(zhuǎn)方口線連接板卡(CMSIS-DAP端口)和電腦。第三步: 使用keil5打開工程,編譯下載程序。參考程序:國(guó)產(chǎn)嵌入式技術(shù)及應(yīng)用實(shí)踐資源\項(xiàng)目代碼\項(xiàng)目二\任務(wù)1在本任務(wù)中LED成功實(shí)現(xiàn)了流水燈的效果。這意味著LED燈按照預(yù)定的順序和時(shí)間間隔依次點(diǎn)亮和熄滅,形成流動(dòng)的視覺效果。如圖所示紅色框中4顆LED燈。任務(wù)結(jié)束任務(wù)2報(bào)警開關(guān)功能設(shè)計(jì)與開發(fā)任務(wù)情報(bào)HC32F460的外部中斷是由中斷控制器(INTC)選擇中斷事件請(qǐng)求作為中斷輸入到NVIC,支持16個(gè)外部管腳中斷,中斷觸發(fā)方式支持上升沿觸發(fā)、下降沿觸發(fā)等功能,系統(tǒng)中斷框圖如圖所示。NVTC主要功能說(shuō)明:可編程優(yōu)先級(jí):16個(gè)可編程優(yōu)先級(jí)(使用了4位中斷優(yōu)先級(jí)寄存器)。不可屏蔽中斷:除NMI管腳作為不可屏蔽中斷源以外,可以獨(dú)立選擇多種系統(tǒng)中斷事件請(qǐng)求作為不可屏蔽中斷,且各中斷事件請(qǐng)求配備獨(dú)立的使能選擇、標(biāo)志以及標(biāo)志清除寄存器。配備16個(gè)外部管腳中斷。配置多種外設(shè)中斷事件請(qǐng)求。配備32個(gè)軟件中斷事件請(qǐng)求。中斷可喚醒系統(tǒng)休眠模式和停止模式。說(shuō)明:實(shí)際使用中斷向量數(shù)請(qǐng)參考【中斷向量表】(不包括Cortex?-M4F的16根中斷線),每個(gè)中斷向量可以根據(jù)中斷選擇寄存器選擇對(duì)應(yīng)的外設(shè)中斷事件請(qǐng)求。HC32F460的中斷控制器一共使用了144個(gè)中斷向量,提供了3種中斷事件請(qǐng)求選擇方式,通過(guò)靈活的組合來(lái)滿足各種中斷配置需求。第一種方式共32個(gè)中斷向量,所有中斷事件請(qǐng)求任選1作為中斷源,通過(guò)中斷/事件選擇寄存器INT_SEL0~31進(jìn)行選擇,通過(guò)INT_IER寄存器使能,對(duì)應(yīng)NVIC的中斷向量為0~31。第二種方式共96個(gè)中斷向量,32選1作為中斷源,通過(guò)中斷選擇寄存器INT_SEL32~127進(jìn)行選擇,對(duì)應(yīng)的中斷向量為32~127。第三種方式共16個(gè)中斷向量,32個(gè)外設(shè)中斷事件請(qǐng)求共享1個(gè)中斷向量,各外設(shè)都可以申請(qǐng)中斷,通過(guò)外設(shè)標(biāo)志位區(qū)分,通過(guò)中斷使能寄存器INT_VSSEL128~143進(jìn)行中斷事件請(qǐng)求使能,對(duì)應(yīng)NVIC的中斷向量為128~143。本次任務(wù)常用寄存器:1)外部管腳中斷控制寄存器(INT_EIRQCRx)2)中斷/事件選擇寄存器(INT_SEL0~31)3)中斷使能寄存器(INT_IER)4)外部管腳中斷標(biāo)志寄存器(INT_EIFR)5)外部管腳中斷標(biāo)志清除寄存器(EIFCR)在使用外部中斷時(shí),要將EIRQ數(shù)字濾波器使能,設(shè)置濾波器的采樣時(shí)鐘,選擇外部引腳的中斷觸發(fā)方式,該觸發(fā)方式一種有四種:下降沿:當(dāng)外部中斷引腳的信號(hào)從高電平(1)變?yōu)榈碗娖剑?)的瞬間,即電平發(fā)生下降沿變化時(shí),觸發(fā)一次中斷。這種方式常用于捕捉短暫的脈沖信號(hào),確保只對(duì)信號(hào)的每次下降沿做出響應(yīng)。上升沿:與下降沿相反,當(dāng)信號(hào)從低電平(0)變?yōu)楦唠娖剑?)的瞬間,即發(fā)生上升沿變化時(shí),觸發(fā)中斷。適合用于避免在信號(hào)穩(wěn)定為低電平時(shí)的誤觸發(fā),確保系統(tǒng)對(duì)每個(gè)上升沿事件作出響應(yīng)。雙邊沿:不論信號(hào)是從低變高(上升沿)還是從高變低(下降沿),只要電平發(fā)生變化,都會(huì)觸發(fā)中斷。這種方式適用于需要檢測(cè)信號(hào)的每一個(gè)變化,無(wú)論方向如何,常用于計(jì)數(shù)或頻率測(cè)量等場(chǎng)景。低電平:只要外部中斷引腳保持在低電平狀態(tài),中斷就會(huì)被持續(xù)觸發(fā)。一旦信號(hào)變?yōu)楦唠娖?,中斷停止觸發(fā)。這種模式適合用于監(jiān)測(cè)長(zhǎng)時(shí)間的信號(hào)狀態(tài),如按鈕被按下并保持的情況,但需注意防止長(zhǎng)按導(dǎo)致的連續(xù)中斷問(wèn)題,通常需要軟件去抖動(dòng)處理。HC32F460的中斷有3種中斷方式,一般選擇第一種,通過(guò)中斷/事件選擇寄存器(INT_SEL0~31)進(jìn)行設(shè)置。中斷設(shè)置好后,便需要使用中斷使能寄存器(INT_IER)進(jìn)行中斷使能。中斷發(fā)生后,需要通過(guò)外部管腳中斷標(biāo)志寄存器(INT_EIFR)查詢相應(yīng)管腳是否發(fā)生中斷。每當(dāng)產(chǎn)生一次中斷后,必須通過(guò)操作外部管腳中斷標(biāo)志清除寄存器(EIFCR),以清除相應(yīng)的中斷標(biāo)志位。外部中斷編程說(shuō)明有關(guān)HC32F460的中斷函數(shù)和預(yù)定義在hc32_ll_interrupts.h和hc32_ll_interrupts.c文件中。外部中斷編程定義說(shuō)明HC32F460的外部中斷初始化參數(shù)結(jié)構(gòu)體為stc_extint_init_t,一共有三個(gè)參數(shù),設(shè)置濾波器、濾波器時(shí)鐘、外部中斷觸發(fā)方式。typedefstruct{uint32_tu32Filter; //使能濾波器uint32_tu32FilterClock; //設(shè)置濾波器時(shí)鐘uint32_tu32Edge; //設(shè)置觸發(fā)沿為下降沿或上升沿}stc_extint_init_t;HC32F460的中斷參數(shù)結(jié)構(gòu)體為stc_irq_signin_config_t。typedefstruct{en_int_src_tenIntSrc; //設(shè)置中斷源IRQn_TypeenIRQn; //設(shè)置中斷號(hào)func_ptr_tpfnCallback; //設(shè)置中斷回調(diào)函數(shù)}stc_irq_signin_config_t;外部中斷常用庫(kù)函數(shù)說(shuō)明開關(guān)初始化ZW-M607可穿戴系統(tǒng)應(yīng)用板卡板載4個(gè)按鍵SW3到SW6,對(duì)應(yīng)IO口硬件PB12到PB15,如圖所示。當(dāng)按鍵按下時(shí),低電平有效,在配置按鍵GPIO引腳時(shí),需要上拉電阻。在對(duì)報(bào)警燈初始化需要在工程模板的BSP文件夾中,新建文件BSP_KEY.c和BSP_KEY.h用于存放與KEY相關(guān)的程序。在BSP_KEY.h文件中,對(duì)所需的端口和引腳進(jìn)行宏定義,以便于后續(xù)的管理。以下是一個(gè)KEY外部中斷引腳定義的示例。#ifndef__BSP_KEY_H#define__BSP_KEY_H#include"main.h"/*SW3PORTPININTCONFIG*/#defineSW3_PORT(GPIO_PORT_B)#defineSW3_PIN(GPIO_PIN_12)#defineSW3_EXTINT_CH(EXTINT_CH12)#defineSW3_INT_SRC(INT_SRC_PORT_EIRQ12)#defineSW3_INT_IRQn(INT033_IRQn)#defineSW3_INT_PRIO(DDL_IRQ_PRIO_DEFAULT)/*SW4PORTPININTCONFIG*//*SW5PORTPININTCONFIG*//*SW6PORTPININTCONFIG*/externuint8_tSW3_Flag;//按鍵SW3標(biāo)志位voidKEY_Init(void);#endif這里不僅定義SW3的引腳和通道,還定義了外部中斷號(hào)和外部中斷源,并定義按鍵SW3標(biāo)志位,接下來(lái)在BSP_KEY.c文件寫KEY初始化函數(shù)代碼。staticvoidSW3_Init(void){stc_extint_init_tstcExtIntInit;//定義外部中斷初始化結(jié)構(gòu)體
stc_irq_signin_config_tstcIrqSignConfig;//定義中斷初始化結(jié)構(gòu)體
stc_gpio_init_tstcGpioInit;//定義GPIO初始化結(jié)構(gòu)體
/*GPIOconfig*/(void)GPIO_StructInit(&stcGpioInit);//初始化GPIO結(jié)構(gòu)體
stcGpioInit.u16ExtInt=PIN_EXTINT_ON;//使能外部中斷
stcGpioInit.u16PullUp=PIN_PU_ON;//使能上拉
(void)GPIO_Init(SW3_PORT,SW3_PIN,&stcGpioInit);//初始化GPIO/*ExtIntconfig*/(void)EXTINT_StructInit(&stcExtIntInit);//初始化外部中斷結(jié)構(gòu)體
stcExtIntInit.u32Filter=EXTINT_FILTER_ON;//使能濾波器
stcExtIntInit.u32FilterClock=EXTINT_FCLK_DIV8;//設(shè)置濾波器時(shí)鐘
stcExtIntInit.u32Edge=EXTINT_TRIG_FALLING;//設(shè)置觸發(fā)沿為下降沿
(void)EXTINT_Init(SW3_EXTINT_CH,&stcExtIntInit);//初始化外部中斷
/*IRQsign-in*/stcIrqSignConfig.enIntSrc=SW3_INT_SRC;//設(shè)置中斷源
stcIrqSignConfig.enIRQn=SW3_INT_IRQn;//設(shè)置中斷號(hào)
stcIrqSignConfig.pfnCallback=&EXTINT_SW3_IrqCallback;//設(shè)置中斷回調(diào)函數(shù)
(void)INTC_IrqSignIn(&stcIrqSignConfig);//初始化中斷
/*NVICconfig*/NVIC_ClearPendingIRQ(stcIrqSignConfig.enIRQn);//清除掛起的中斷
NVIC_SetPriority(stcIrqSignConfig.enIRQn,SW3_INT_PRIO);//設(shè)置中斷優(yōu)先級(jí)
NVIC_EnableIRQ(stcIrqSignConfig.enIRQn);//使能中斷}函數(shù)名稱:staticvoidEXTINT_SW3_IrqCallback(void)輸入:無(wú)輸出:無(wú)作用:外部中斷的回調(diào)函數(shù);staticvoidEXTINT_SW3_IrqCallback(void){if(SET==EXTINT_GetExtIntStatus(SW3_EXTINT_CH))//檢查外部中斷狀態(tài)是否為SET{SW3_Flag=1;//設(shè)置標(biāo)志位,表明SW3已被按下
while(PIN_RESET==GPIO_ReadInputPins(SW3_PORT,SW3_PIN))//等待直到SW3按鈕被釋放
{;//空循環(huán),什么也不做,直到按鈕被釋放
}EXTINT_ClearExtIntStatus(SW3_EXTINT_CH);//清除外部中斷狀態(tài)
}}在BSP_KEY.c繼續(xù)寫按鍵狀態(tài)的處理函數(shù),按鍵狀態(tài)判斷回調(diào)函數(shù)和按鍵狀態(tài)執(zhí)行函數(shù),再在BSP_KEY.h聲明voidProcessButtons(void)函數(shù),再在主函數(shù)調(diào)用ProcessButtons();函數(shù)名稱:uint8_tCheckAndClearFlag(uint8_t*flag)輸 入:外部中斷完成標(biāo)志位輸 出:1按鍵被按下,0按鍵未被按下作 用:外部中斷標(biāo)志位的回調(diào)函數(shù);uint8_tCheckAndClearFlag(uint8_t*flag){if(*flag){*flag=0;//清除標(biāo)志位
return1;//返回1表示標(biāo)志位被設(shè)置
}return0;//返回0表示標(biāo)志位未設(shè)置}開關(guān)報(bào)警功能實(shí)現(xiàn)函數(shù)名稱:voidProcessButtons(void)輸入:無(wú)輸出:無(wú)作用:執(zhí)行按鍵按下后的事件;//主循環(huán)或其他函數(shù)中檢查和處理按鍵標(biāo)志位voidProcessButtons(void){if(CheckAndClearFlag(&SW3_Flag)){LED6_TOGGLE;//處理SW3按鍵事件
}if(CheckAndClearFlag(&SW4_Flag)){LED5_TOGGLE;//處理SW4按鍵事件
}if(CheckAndClearFlag(&SW5_Flag)){LED4_TOGGLE;//處理SW5按鍵事件
}if(CheckAndClearFlag(&SW6_Flag)){LED3_TOGGLE;//處理SW6按鍵事件
}}獲取到按鍵狀態(tài)后,每個(gè)按鍵對(duì)應(yīng)一個(gè)LED燈,每次按下LED燈便會(huì)取反一次。函數(shù)名稱:int32_tmain(void)輸入:無(wú)輸出:無(wú)作用:主函數(shù)int32_tmain(void){/*MCUPeripheralregisterswriteunprotected*/LL_PERIPH_WE(LL_PERIPH_ALL);//解除MCU寄存器寫保護(hù)
BSP_CLK_Init();//時(shí)鐘初始化,8M晶振,系統(tǒng)時(shí)鐘200MLED_Init();//LED初始化
KEY_Init();//KEY初始化
/*MCUPeripheralregisterswriteprotected*/LL_PERIPH_WP(LL_PERIPH_ALL);//MCU寄存器寫保護(hù)
/*Addyourcodehere*/while(1){ProcessButtons();}}在main函數(shù)中初始化了LED和按鍵函數(shù),主循環(huán)里一直使用ProcessButtons()函數(shù)掃描按鍵是否按下,并處理相應(yīng)事情。任務(wù)實(shí)現(xiàn)第一步: 可穿戴系統(tǒng)應(yīng)用板卡(ZW-M607)使用12VDC電源供電,插入后按下電源開關(guān)。第二步: 使用USB轉(zhuǎn)方口線連接板卡(CMSIS-DAP端口)和電腦。第三步: 使用keil5打開工程,編譯下載程序。參考程序:國(guó)產(chǎn)嵌入式技術(shù)及應(yīng)用實(shí)踐資源\項(xiàng)目代碼\項(xiàng)目二\任務(wù)1在本次任務(wù)中,成功實(shí)現(xiàn)了按鍵外部中斷控制LED開關(guān)的功能。按鍵按下彈起時(shí)LED亮起,再次按下彈起時(shí)LED熄滅的效果。如圖51所示紅色方框?yàn)?個(gè)按鍵和LED的位置。任務(wù)結(jié)束任務(wù)3溫感探測(cè)功能設(shè)計(jì)與開發(fā)任務(wù)情報(bào)HC32F460系列微控制器集成了高性能的模數(shù)轉(zhuǎn)換器(ADC)功能,如圖52所示內(nèi)部集成了ADC1和ADC2兩個(gè)獨(dú)立的ADC模塊,支持12位、10位和8位的分辨率配置,提供最多16個(gè)外部模擬輸入通道以及1個(gè)內(nèi)部基準(zhǔn)電壓/8位DAC輸出的檢測(cè)通道,一共兩個(gè)序列A和B,一個(gè)序列支持單次掃描或連續(xù)掃描。ADC模塊需要使用兩個(gè)時(shí)鐘:模擬電路時(shí)鐘ADCLK,數(shù)字接口時(shí)鐘PCLK4。兩個(gè)時(shí)鐘都來(lái)自時(shí)鐘控制器中的分頻器。ADCLK等效于PCLK2,與PCLK4是同步關(guān)系,PCLK4與ADCLK的頻率比率關(guān)系為1:1,2:1,4:1,8:1,1:2,1:4。ADCLK可以選擇與系統(tǒng)時(shí)鐘HCLK異步的PLL時(shí)鐘源,此時(shí)PCLK4與ADCLK相同,為同步同頻率關(guān)系。ADCLK的最高頻率為60MHz。ADC模塊有多個(gè)通道,可配置為兩個(gè)序列:序列A,序列B進(jìn)行轉(zhuǎn)換。序列A和B配有獨(dú)立的通道選擇寄存器ADC_CHSELRA,ADC_CHSELRB。寄存器每位代表一個(gè)通道,如bit0位寫1表示轉(zhuǎn)換CH0,寫0表示不轉(zhuǎn)換CH0。兩個(gè)序列可獨(dú)立選擇任意1個(gè)或多個(gè)通道進(jìn)行轉(zhuǎn)換。例如:ADC_CHSELRA設(shè)置為0x0055,ADCHSELRB設(shè)置為0x0002,則序列A的觸發(fā)條件發(fā)生時(shí),將依次轉(zhuǎn)換CH0,CH2,CH4和CH6這4個(gè)通道。序列B的觸發(fā)條件發(fā)生時(shí),將轉(zhuǎn)換CH1這一個(gè)通道。序列A可支持單次掃描模式和連續(xù)掃描模式,通過(guò)A/D控制寄存器ADC_CR0.MS[1:0]設(shè)置。序列A單次掃描模式下,如圖所示,當(dāng)寄存器ADC_TRGSR選擇的序列A啟動(dòng)條件發(fā)生,或者ADC_STR.STRT位寫1軟件觸發(fā),ADC啟動(dòng),對(duì)序列A通道選擇寄存器ADC_CHSELRA中選擇的所有通道依次進(jìn)行采樣和轉(zhuǎn)換,轉(zhuǎn)換結(jié)果存入相應(yīng)的數(shù)據(jù)寄存器ADC_DR中。ADC轉(zhuǎn)換過(guò)程中ADC_STR.STRT保持為1,當(dāng)所有通道轉(zhuǎn)換結(jié)束后自動(dòng)清0,ADC進(jìn)入轉(zhuǎn)換待機(jī)狀態(tài),等待下次觸發(fā)條件的發(fā)生。當(dāng)所有通道轉(zhuǎn)換結(jié)束時(shí),序列A轉(zhuǎn)換結(jié)束標(biāo)志位ADC_ISR.EOCAF置1,并產(chǎn)生序列A轉(zhuǎn)換結(jié)束事件ADC_EOCA,可以用此事件啟動(dòng)DMA。若ADC_ICR.EOCAIEN為1,中斷許可的狀態(tài)下,同時(shí)還產(chǎn)生序列A轉(zhuǎn)換結(jié)束中斷請(qǐng)求。序列A連續(xù)掃描模式下,如圖所示,序列A連續(xù)掃描模式與序列A單次掃描模式動(dòng)作類似,不同點(diǎn)在于,連續(xù)模式在所用通道轉(zhuǎn)換結(jié)束后不是進(jìn)入轉(zhuǎn)換待機(jī)狀態(tài),而是重新開始轉(zhuǎn)換序列A。STRT位也不會(huì)自動(dòng)清0。當(dāng)需要停止連續(xù)掃描時(shí),對(duì)STRT位寫0,并讀STRT確認(rèn)為0以判斷ADC進(jìn)入轉(zhuǎn)換待機(jī)狀態(tài)。HC32F460系列MCU的ADC1有17個(gè)采樣通道,最多支持16個(gè)外部模擬輸入引腳,通道0~15可與外部模擬輸入引腳自由映射,通道16用于內(nèi)部基準(zhǔn)電壓/8bitDAC的輸出檢測(cè)。ADC2有9個(gè)采樣通道,最多支持8個(gè)外部模擬輸入引腳,通道0~7可與外部模擬輸入引腳自由映射,通道8用于內(nèi)部基準(zhǔn)電壓/8bitDAC的輸出檢測(cè)。HC32F460系列MCU的ADC模塊模擬輸入引腳等配置如表所示。ADC通道對(duì)應(yīng)引腳需要查看芯片硬件手冊(cè),手冊(cè)地址:國(guó)產(chǎn)嵌入式技術(shù)及應(yīng)用實(shí)踐資源\項(xiàng)目資料\DS_HC32F460系列數(shù)據(jù)手冊(cè)_Rev1.5.pdf看到手冊(cè)中的引腳功能表,如圖所示,例如PA0為ADC1_IN0、PA1為ADC1_IN1、PA2為ADC1_IN2、PA3為ADC1_IN3,其他引腳對(duì)應(yīng)的ADC功能請(qǐng)?jiān)谛酒布謨?cè)中查看。本次任務(wù)常用寄存器:1)A/D控制寄存器0ADC_CR02)A/D啟動(dòng)寄存器ADC_STR3)A/D中斷狀態(tài)寄存器ADC_ISR4)A/D數(shù)據(jù)寄存器ADC_DR初始化ADC時(shí),需要用到A/D控制寄存器0ADC_CR0,如圖所示,一共有五個(gè)功能位:AVCNT[2:0]:ADC平均轉(zhuǎn)換次數(shù),平均轉(zhuǎn)換次數(shù)越多,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣東省風(fēng)力發(fā)電有限公司山西分公司招聘7人筆試備考試題附答案
- 2026西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院計(jì)算與藝術(shù)交叉研究中心非事業(yè)編制人員招聘1人(陜西)筆試參考題庫(kù)及答案解析
- 2026廣西北海市海城區(qū)海洋局招聘編外人員1人筆試備考試題及答案解析
- 珙縣事業(yè)單位2025年下半年公開考核招聘工作人員取消招聘崗位和筆試、面試相關(guān)事宜筆試備考試題及答案解析
- 2026年滁州職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試備考題庫(kù)帶答案解析
- 2026廣西百色市西林縣民政局年招聘編外聘用人員4人筆試備考試題及答案解析
- 2026浙江中外運(yùn)有限公司溫州分公司招聘1人筆試備考題庫(kù)及答案解析
- 2026鄭州銀行總行資產(chǎn)負(fù)債管理部社招筆試備考試題及答案解析
- 2026溫州市特種設(shè)備檢測(cè)科學(xué)研究院招聘4人筆試備考題庫(kù)及答案解析
- 2026廣東韶關(guān)市樂(lè)昌市青年就業(yè)見習(xí)基地招募見習(xí)人員10人筆試備考題庫(kù)及答案解析
- 《中國(guó)臨床腫瘤學(xué)會(huì)(csco)小細(xì)胞肺癌診療指南(2025版)》
- 2025至2030中國(guó)半導(dǎo)體AMC過(guò)濾器行業(yè)競(jìng)爭(zhēng)優(yōu)勢(shì)及前景趨勢(shì)預(yù)判報(bào)告
- 鄉(xiāng)鎮(zhèn)高層滅火救援疏散應(yīng)急演練方案及流程
- 五恒系統(tǒng)節(jié)能環(huán)保施工技術(shù)規(guī)范與優(yōu)化研究
- 大學(xué)期末考試思政題庫(kù)及答案
- 師徒結(jié)對(duì)活動(dòng)記錄表-師傅
- have與has的用法微課課件
- 如何做員工考勤管理制度
- 大學(xué)形勢(shì)政策課件
- 城市供水管道施工重難點(diǎn)分析及改進(jìn)措施
- 2025年南京市事業(yè)單位教師招聘體育學(xué)科專業(yè)知識(shí)歷年真題解析試卷
評(píng)論
0/150
提交評(píng)論