版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
遠(yuǎn)程智能晾衣架第1章緒論1.1研究目的及意義傳統(tǒng)晾衣架功能單一,無法實(shí)現(xiàn)全自動(dòng)智能化現(xiàn)代化生活,不能滿足人們快節(jié)奏生活的需求[1]。近年來,人們智能化需求越來越多,為實(shí)現(xiàn)遠(yuǎn)程智能收晾衣物,提出了智能晾衣架遠(yuǎn)程監(jiān)控系統(tǒng).該智能晾衣架在無人監(jiān)督的情況下可實(shí)現(xiàn)自動(dòng)收晾衣物。傳感器控制的自動(dòng)晾衣系統(tǒng),隨時(shí)控制晾衣系統(tǒng)的工作狀態(tài),讓衣服充分晾曬。隨著科技和智能化自動(dòng)化的不斷發(fā)展,多樣性的只能設(shè)備在長(zhǎng)期以來的發(fā)展中,為我們的生活提供了極大的便利,發(fā)揮出了突出的優(yōu)勢(shì)作用[2]。當(dāng)前為了滿足不同用戶對(duì)于自動(dòng)化,智能化生活系統(tǒng)的需求,并且令用戶遠(yuǎn)程管理晾衣系統(tǒng),遠(yuǎn)程控制的自動(dòng)晾衣系統(tǒng)設(shè)計(jì)為我們提供了更多的空間,目前市場(chǎng)上的“智能”晾衣架只是增加了手動(dòng)或電動(dòng)升降功能,而智能晾衣架基本上都處于構(gòu)想階段,并且功能不夠完善.基于網(wǎng)絡(luò)遠(yuǎn)程與傳感器雙重控制的自動(dòng)晾衣系統(tǒng)設(shè)計(jì)的提出,彌補(bǔ)了這一方面的不足。充分實(shí)現(xiàn)了自動(dòng)化、智能化家居生活。自動(dòng)化、智能化家居生活對(duì)于廣大消費(fèi)者而言具有非常重要的作用和影響[3]。隨著人們對(duì)于自動(dòng)化和智能化的認(rèn)知和了解逐漸深入,越來越多的用戶開始高度關(guān)注其重要性。晾衣架是一種家居用品,分手動(dòng)、電動(dòng)、戶外、落地式四種,拋去古老的固定晾衣架與手搖式升降晾衣架,自動(dòng)晾衣架衣操作方便,功能齊全,外觀美觀實(shí)在是上上之選。雖然自動(dòng)晾衣架價(jià)格比固定晾衣架、手搖式升降晾衣架要稍稍貴一些,但是也在消費(fèi)者能接受的范圍內(nèi)。近10年時(shí)間內(nèi),晾衣架產(chǎn)品已經(jīng)發(fā)生了翻天覆地的變化[4]。晾衣架不再僅僅是一個(gè)裝飾品,更是一個(gè)功能性的產(chǎn)品。在智能化家居成為新時(shí)代必然趨勢(shì)的當(dāng)下,自動(dòng)晾衣架廠家抓準(zhǔn)了人們消費(fèi)觀念向品牌化、高檔化、簡(jiǎn)易化發(fā)展的契機(jī),全心投入到智能自動(dòng)晾衣架的研發(fā)生產(chǎn)中。高檔智能晾衣架集無線遙控、集成照明、快速風(fēng)干、智能烘干、光波殺菌、藍(lán)牙音樂、空氣凈化等功能于一體,滿足了消費(fèi)者個(gè)性化需求。1.2國(guó)內(nèi)外研究現(xiàn)狀自動(dòng)化、智能化家居生活對(duì)于廣大消費(fèi)者而言具有非常重要的作用和影響[5]。當(dāng)前隨著人們對(duì)于自動(dòng)化,智能化的認(rèn)知和了解程度不斷加深,其重要性贏得了廣大用戶的一致關(guān)注。2021年,苗玉剛,何玉輝,李云在《自動(dòng)折疊式太陽能板的設(shè)計(jì)》中:針對(duì)目前太陽能板不能自動(dòng)折疊和清潔,容易受惡劣天氣影響等問題,設(shè)計(jì)了一種自動(dòng)折疊式太陽能板[6]。2021年,鄭曉茜,邵帥飛在《基于ZigBee的溫室大棚環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)》中設(shè)計(jì)了一種溫室大棚環(huán)境的遠(yuǎn)程監(jiān)控系統(tǒng),系統(tǒng)采用ZigBee網(wǎng)絡(luò)對(duì)大棚內(nèi)環(huán)境參數(shù)進(jìn)行實(shí)時(shí)監(jiān)測(cè),通過通信衛(wèi)星或5G傳輸網(wǎng)傳輸至服務(wù)器,以使服務(wù)器對(duì)目標(biāo)溫室大棚環(huán)境進(jìn)行監(jiān)控.可以實(shí)現(xiàn)對(duì)目標(biāo)溫室大棚環(huán)境的有效維護(hù)[7]。2021年,任遠(yuǎn)林,徐奇在《基于嵌入式單片機(jī)的智能家居遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)》中設(shè)計(jì)了一種基于嵌入式單片機(jī)的智能家居遠(yuǎn)程控制系統(tǒng),統(tǒng)具有較好的輸出穩(wěn)定性和較高的控制精度。引入智能家居遠(yuǎn)程控制技術(shù),可以提高家居信息化管理和人工智能化水平,有助于改善人們的生活方式,提高智慧化生活水平,故對(duì)相關(guān)的智能家居遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)方法進(jìn)行研究具有廣泛的應(yīng)用價(jià)值[8]。2021年,郭銘,王佳佳《基于STM32的智能家居濕度控制系統(tǒng)》開發(fā)了一款基于STM32芯片的智能家居濕度控制系統(tǒng),該系統(tǒng)能夠有效地滿足預(yù)定的目標(biāo)和功能需求[9]。2018年,Moss發(fā)表了《Intelligentwashingsystem》,設(shè)計(jì)了一套智能晾衣系統(tǒng)[10]。該系統(tǒng)通過搭載的溫度、濕度、風(fēng)速、光照傳感器自動(dòng)感知室外溫度、濕度、風(fēng)力和關(guān)照強(qiáng)弱的變化,自動(dòng)控制晾衣架伸出窗外或收回室內(nèi),具有反應(yīng)靈敏、操作簡(jiǎn)單、安全可靠、適合老舊小區(qū)改造及新小區(qū)統(tǒng)一加裝的特點(diǎn)。2019年,Tomas發(fā)表了《Intelligentclothes-horsedesign》,通過對(duì)智能晾衣架進(jìn)行深入研究,采用AT89S51單片機(jī)作為主控制器,并借助直流減速電動(dòng)機(jī)實(shí)現(xiàn)晾衣架的移動(dòng)[11]。在手動(dòng)模式下,使用遙控器對(duì)晾衣架進(jìn)行控制;而在自動(dòng)模式下,利用DHT11傳感器檢測(cè)濕度,智能感應(yīng)天氣濕度情況。當(dāng)空氣中相對(duì)濕度超過設(shè)定值時(shí),系統(tǒng)會(huì)向電機(jī)發(fā)送脈沖信號(hào),使晾衣架自動(dòng)收回。同時(shí),光敏電阻用于檢測(cè)光線變化,當(dāng)光線達(dá)到設(shè)定值時(shí),晾衣架也會(huì)自動(dòng)收回,從而實(shí)現(xiàn)晾衣架的智能控制。2020年,James發(fā)表了《Designofanewtypeofintelligenttelescopicdryingracks》,為了解決傳統(tǒng)晾衣架存在的通風(fēng)效果差、光線不足、無法實(shí)時(shí)感知天氣變化以及智能化水平低等缺點(diǎn),研發(fā)了一款基于STC89C52單片機(jī)作為主控芯片、搭載DHT11溫濕度傳感器、BH1750FVI光敏傳感器、TCG-FS風(fēng)速傳感器的戶外智能晾衣架,可以根據(jù)天氣變化智能地調(diào)整晾曬衣物的方式[12]。綜合國(guó)內(nèi)外發(fā)展情況不難看出,現(xiàn)在國(guó)內(nèi)外已經(jīng)逐漸適應(yīng)了智能化現(xiàn)代化的生活家居設(shè)備,本系統(tǒng)的優(yōu)勢(shì)在于可查看晾曬衣物濕度、外界光照強(qiáng)度歷史情況,并能夠?qū)崿F(xiàn)檢測(cè)后不需要人為干預(yù),自動(dòng)進(jìn)行操作。節(jié)省了大量人力資源,方便人們生活[13]。1.3研究?jī)?nèi)容本系統(tǒng)旨在設(shè)計(jì)一個(gè)遠(yuǎn)程智能晾衣架,包括濕度傳感器、光照傳感器、上位機(jī)和核心單片機(jī)等組成。溫濕度傳感器用于檢測(cè)溫濕度,并將數(shù)據(jù)傳遞給單片機(jī),當(dāng)溫濕度超標(biāo)時(shí),單片機(jī)控制舵機(jī)啟動(dòng)。光照傳感器則用于檢測(cè)光照強(qiáng)度,并將數(shù)據(jù)傳遞給單片機(jī),當(dāng)光照強(qiáng)度低于設(shè)定閾值時(shí),舵機(jī)啟動(dòng)。上位機(jī)通過控制舵機(jī)實(shí)現(xiàn)遠(yuǎn)程一鍵收回衣物。通過這種遠(yuǎn)程智能晾衣架的設(shè)計(jì),可以實(shí)現(xiàn)無人操控和遠(yuǎn)距離收回衣物,解決了衣物收回不及時(shí)的問題,從而實(shí)現(xiàn)智能化的生活方式。圖1-1系統(tǒng)結(jié)構(gòu)框圖該系統(tǒng)的主要功能包括:1上位機(jī)通過HC-05與下位機(jī)進(jìn)行通信;2下位機(jī)裝有實(shí)時(shí)濕度傳感器,實(shí)時(shí)檢測(cè)并發(fā)送濕度數(shù)據(jù)給上位機(jī);3下位機(jī)可以實(shí)時(shí)監(jiān)測(cè)光照強(qiáng)度,并將數(shù)據(jù)發(fā)送給上位機(jī);4當(dāng)溫濕度數(shù)值異常時(shí),單片機(jī)控制舵機(jī)啟動(dòng);5當(dāng)外界光照強(qiáng)度低于設(shè)定閾值時(shí),單片機(jī)控制舵機(jī)啟動(dòng);6系統(tǒng)支持語音控制進(jìn)行衣物的收放,并能夠監(jiān)測(cè)雨量情況,實(shí)現(xiàn)烘干功能。
第2章系統(tǒng)總體結(jié)構(gòu)2.1設(shè)計(jì)方案硬件以濕度傳感器、光照傳感器、上位機(jī)、核心單片組成傳感器主要應(yīng)用了濕度傳感器、光照傳感器等本次設(shè)計(jì)是在STM32的基礎(chǔ)上研究開發(fā)的一款遠(yuǎn)程智能晾衣架設(shè)計(jì)[14]。通過STM32單片機(jī)集合各個(gè)感應(yīng)模塊運(yùn)算,從而做出反應(yīng)。通過傳感器實(shí)時(shí)監(jiān)測(cè)周圍環(huán)境狀況是否存在下雨,光線弱的情況,如果有就會(huì)反饋給單片機(jī)。反饋給單片機(jī)通過上機(jī)位呈現(xiàn)出來,通過舵機(jī)自動(dòng)收回衣物;從上機(jī)位還有一個(gè)獨(dú)立按鈕控制舵機(jī),可供手動(dòng)控制。2.2功能需求分析2.2.1技術(shù)要求 1硬件部分需要單片機(jī)STM32F103C8T6、濕度傳感器、光敏電阻、舵機(jī)、藍(lán)牙遠(yuǎn)程模塊 2軟件平臺(tái)程序用keil5; 3畫原理圖用AD; 4編程語言用C語言; 5濕度、光照檢測(cè)信號(hào)顯示用手機(jī)APP查看;2.2.2實(shí)現(xiàn)結(jié)果通過系統(tǒng)的布設(shè)和完善,預(yù)期遠(yuǎn)程智能晾衣架將實(shí)現(xiàn)以下成果:1上位機(jī)通過HC-05與下位機(jī)進(jìn)行通信;2上位機(jī)可接收下位機(jī)傳送的數(shù)據(jù)并存入數(shù)據(jù)庫(kù),并實(shí)時(shí)顯示;3上位機(jī)可查看溫濕度和光照的歷史情況;4下位機(jī)裝有濕度傳感器,實(shí)時(shí)檢測(cè)溫濕度數(shù)據(jù)并發(fā)送給上位機(jī);5當(dāng)溫濕度低于設(shè)定閾值時(shí),舵機(jī)自動(dòng)打開,將晾出的衣服收回;6下位機(jī)可以實(shí)時(shí)監(jiān)測(cè)外界光照強(qiáng)度;7當(dāng)外界光照強(qiáng)度相差超過設(shè)定閾值時(shí),舵機(jī)打開,將晾出的衣服收回;8系統(tǒng)支持烘干功能,可以通過語音控制進(jìn)行衣物的收放;9系統(tǒng)可以監(jiān)測(cè)雨水情況,并做出相應(yīng)的處理。2.3總體方案設(shè)計(jì)1、理論知識(shí)準(zhǔn)備階段:深入理解設(shè)計(jì)課題,仔細(xì)研究相關(guān)內(nèi)容,掌握與課題相關(guān)的知識(shí);2、系統(tǒng)模塊確定階段:明確系統(tǒng)各個(gè)模塊,并理清它們之間的關(guān)系,收集相關(guān)的軟硬件資料;3、課題規(guī)劃階段:規(guī)劃系統(tǒng)的組成結(jié)構(gòu),繪制大體系統(tǒng)框架,并提出原理框圖;4、硬件電路設(shè)計(jì)階段:利用軟件完成硬件電路設(shè)計(jì),并繪制各部分電路圖,將系統(tǒng)部件通過接口電路集成,繪制電路圖;5、軟件設(shè)計(jì)階段:根據(jù)系統(tǒng)控制過程,完成軟件設(shè)計(jì)部分,繪制主流程圖;6、模擬仿真階段:對(duì)系統(tǒng)進(jìn)行模擬仿真,檢查系統(tǒng)是否能夠按要求實(shí)現(xiàn)控制功能;7、論文整理階段:整理課題相關(guān)的論文,準(zhǔn)備最終的文獻(xiàn)資料。2.4單片機(jī)型號(hào)選擇STM32系列單片機(jī)是一款高性能,功能強(qiáng)大的系列單片機(jī)[15]。該系列單片機(jī)常被用于要求低成本、高性能和低功耗的嵌入式應(yīng)用程序,其在功耗和集成方面也展現(xiàn)出良好的性能。由于其便捷的工具和簡(jiǎn)單的結(jié)構(gòu)并且結(jié)合了強(qiáng)大的功能性,在業(yè)界很受歡迎。最小系統(tǒng)如圖2-1。圖2-1單片機(jī)最小系統(tǒng)原理圖復(fù)位電路:包括復(fù)位按鈕和復(fù)位電路,用于在需要時(shí)將STM32單片機(jī)復(fù)位到初始狀態(tài)。復(fù)位按鈕通過連接到單片機(jī)的復(fù)位引腳,當(dāng)按下按鈕時(shí),會(huì)將復(fù)位引腳拉低,觸發(fā)單片機(jī)復(fù)位[16]。晶振電路:用于提供STM32單片機(jī)的時(shí)鐘信號(hào),通常包括一個(gè)晶體振蕩器和兩個(gè)穩(wěn)壓電容。晶體振蕩器的頻率需要根據(jù)單片機(jī)的時(shí)鐘要求進(jìn)行選擇,并通過連接到單片機(jī)的時(shí)鐘引腳來提供系統(tǒng)時(shí)鐘。電源電路:包括供電電源和電源濾波電路,用于為STM32單片機(jī)提供穩(wěn)定的電源電壓。通常使用穩(wěn)壓器或者電源模塊來將輸入電壓穩(wěn)定為單片機(jī)需要的工作電壓,并通過濾波電路來去除電源中的噪聲和干擾。本設(shè)計(jì)采用的主控芯片為STM32F103C8T6,該芯片是一款由STMicroelectronics公司生產(chǎn)的32位ARMCortex-M3內(nèi)核的微控制器芯片,是STM32系列中的一員。內(nèi)核:STM32F103C8T6采用ARMCortex-M3內(nèi)核,運(yùn)行頻率可達(dá)72MHz,具有高性能和低功耗特性。存儲(chǔ)器:STM32F103C8T6具有64KB的Flash存儲(chǔ)器和20KB的RAM存儲(chǔ)器,可用于存儲(chǔ)應(yīng)用程序代碼和數(shù)據(jù)。輸入/輸出(I/O):STM32F103C8T6提供多達(dá)37個(gè)通用輸入/輸出引腳(GPIO),可用于連接外部設(shè)備和傳感器。通信接口:STM32F103C8T6支持多種通信接口,包括USART、SPI、I2C等,可用于與其他設(shè)備進(jìn)行串行通信或并行通信[17]。定時(shí)器:STM32F103C8T6內(nèi)置多個(gè)定時(shí)器,包括通用定時(shí)器(TIM)和高級(jí)定時(shí)器(TIM),可用于實(shí)現(xiàn)各種定時(shí)和計(jì)數(shù)功能。ADC:STM32F103C8T6內(nèi)置12位模數(shù)轉(zhuǎn)換器(ADC),可用于模擬信號(hào)的數(shù)字化轉(zhuǎn)換。中斷控制器:STM32F103C8T6具有靈活的中斷控制器,可用于處理外部中斷和內(nèi)部異常。電源管理:STM32F103C8T6具有多種低功耗模式,可用于優(yōu)化功耗,并支持多種電源管理功能,如電源監(jiān)測(cè)、低電壓檢測(cè)等[18]。調(diào)試和編程:STM32F103C8T6支持多種調(diào)試和編程接口,包括SWD(SerialWireDebug)和JTAG(JointTestActionGroup),方便開發(fā)和調(diào)試。
第3章系統(tǒng)的硬件部分設(shè)計(jì)3.1系統(tǒng)總體設(shè)計(jì)硬件以濕度傳感器、光照傳感器、上位機(jī)、核心單片組成傳感器主要應(yīng)用了濕度傳感器、光照傳感器等本次設(shè)計(jì)是在STM32的基礎(chǔ)上研究開發(fā)的一款遠(yuǎn)程智能晾衣架設(shè)計(jì)。通過STM32單片機(jī)集合各個(gè)感應(yīng)模塊運(yùn)算,從而做出反應(yīng)。通過傳感器實(shí)時(shí)監(jiān)測(cè)周圍環(huán)境狀況是否存在下雨,光線弱的情況,如果有就會(huì)反饋給單片機(jī)。反饋給單片機(jī)通過上機(jī)位呈現(xiàn)出來,通過舵機(jī)自動(dòng)收回衣物;從上機(jī)位還有一個(gè)獨(dú)立按鈕控制舵機(jī),可供手動(dòng)控制。該系統(tǒng)完成的主要功能有:1上位機(jī)通過HC-05與下位機(jī)進(jìn)行通信;2上位機(jī)可接受下位機(jī)傳送的數(shù)據(jù)存入數(shù)據(jù)庫(kù),并實(shí)時(shí)顯示;3上位機(jī)可查看濕度、光照歷史情況4下位機(jī)裝有濕度傳感器,實(shí)時(shí)檢測(cè)濃度并發(fā)送上位機(jī);5濕度低于所設(shè)閾值,自動(dòng)打開舵機(jī);6下位機(jī)可以實(shí)時(shí)外界光照強(qiáng)度;7當(dāng)外界光照強(qiáng)度相差超過上位機(jī)設(shè)定閾值時(shí),打開舵機(jī)8可以進(jìn)行烘干,語音播報(bào),雨水監(jiān)測(cè)等功能??傮w原理圖如下所示:圖3-1總體原理圖3.2系統(tǒng)的主要功能模塊設(shè)計(jì)3.2.1DHT11溫濕度傳感器模塊設(shè)計(jì)DHT11是一款常見的數(shù)字溫濕度傳感器,常用于測(cè)量環(huán)境中的溫度和濕度[19]。工作原理:DHT11采用單總線數(shù)字信號(hào)傳輸方式,通過內(nèi)部的溫濕度傳感器測(cè)量環(huán)境中的溫度和濕度,并將測(cè)量結(jié)果以數(shù)字信號(hào)的形式輸出。模塊參數(shù):1.測(cè)量范圍:DHT11的溫度測(cè)量范圍為0°C到50°C,濕度測(cè)量范圍為20%RH到90%RH。2.精度:DHT11的溫度測(cè)量精度為±2°C,濕度測(cè)量精度為±5%RH。3.供電電壓:DHT11的供電電壓為3V到5.5V,可以通過單一的數(shù)字引腳進(jìn)行供電。輸出信號(hào):DHT11的輸出信號(hào)為數(shù)字信號(hào),采用單總線通訊方式,可以通過微處理器的GPIO引腳進(jìn)行讀取。應(yīng)用:DHT11廣泛應(yīng)用于各種溫濕度監(jiān)測(cè)和控制系統(tǒng),如室內(nèi)氣候監(jiān)測(cè)、智能家居、農(nóng)業(yè)溫濕度監(jiān)測(cè)等。圖3-2DHT11溫濕度傳感器原理圖3.2.2藍(lán)牙模組模塊設(shè)計(jì)藍(lán)牙模塊,采用的是HC-05是一種集成藍(lán)牙功能的PCBA板,用于短距離無線通訊,按功能分為藍(lán)牙數(shù)據(jù)模塊和藍(lán)牙語音模塊。藍(lán)牙模塊是指集成藍(lán)牙功能的芯片基本電路集合,用于無線網(wǎng)絡(luò)通訊,大致可分為三大類型:傳輸模塊、藍(lán)牙音頻模塊、藍(lán)牙音頻+數(shù)據(jù)二合一模塊等等。一般模塊具有半成品的屬性,是在芯片的基礎(chǔ)上進(jìn)行過加工,以使后續(xù)應(yīng)用更為簡(jiǎn)單[20]。藍(lán)牙設(shè)備采用無線電波連接手機(jī)和計(jì)算機(jī)。藍(lán)牙產(chǎn)品含有一塊兒小小藍(lán)牙模塊及其支撐聯(lián)接的藍(lán)牙無線電和軟件。當(dāng)兩個(gè)藍(lán)牙設(shè)備要想互相溝通時(shí),他們需要進(jìn)行配對(duì)。藍(lán)牙設(shè)備相互間的通信在短程(被稱作微微網(wǎng),指設(shè)備采用藍(lán)牙技術(shù)聯(lián)接而成的網(wǎng)絡(luò))的臨時(shí)性網(wǎng)絡(luò)中進(jìn)行。這類網(wǎng)絡(luò)可容下兩至8臺(tái)設(shè)備進(jìn)行聯(lián)接。當(dāng)網(wǎng)絡(luò)環(huán)境創(chuàng)建完成,1臺(tái)設(shè)備作為主設(shè)備,而很多其他設(shè)備作為從設(shè)備。強(qiáng)禾科技在藍(lán)牙設(shè)備添加和離去無線電短程傳感時(shí)動(dòng)態(tài)、自動(dòng)創(chuàng)建。伴隨著近些年藍(lán)牙技術(shù)的飛速發(fā)展,在功耗不斷的降低的現(xiàn)狀下,藍(lán)牙的傳輸速率也不斷得到了提升,使藍(lán)牙的運(yùn)用范圍更為普遍。但若要設(shè)計(jì)構(gòu)思一種完整的藍(lán)牙系統(tǒng),就一定要全面熟練掌握藍(lán)牙的有關(guān)技術(shù)專業(yè)知識(shí)。藍(lán)牙模塊可以進(jìn)行串口(SPI、IIC)和MCU控制設(shè)備進(jìn)行數(shù)據(jù)傳輸。藍(lán)牙模塊可以作為主機(jī)和從機(jī)。主機(jī)便是可以搜索其他藍(lán)牙模塊并自動(dòng)創(chuàng)建聯(lián)接,從機(jī)則不可以自動(dòng)創(chuàng)建聯(lián)接,只可以等其他人聯(lián)接自身。如圖3-3藍(lán)牙模組原理圖。圖3-3藍(lán)牙模組原理圖3.2.3舵機(jī)模塊設(shè)計(jì)舵機(jī)是一種位置(角度)伺服的驅(qū)動(dòng)器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。本文采用的180°舵機(jī),在高檔遙控玩具,如飛機(jī)、潛艇模型,遙控機(jī)器人中已經(jīng)得到了普遍應(yīng)用。SG90舵機(jī)是一種小型伺服舵機(jī),主要由外殼、板、驅(qū)動(dòng)馬達(dá)、減速器和位置檢測(cè)元件構(gòu)成。其工作原理是通過接收機(jī)發(fā)出信號(hào)給舵機(jī),經(jīng)過電路板上的IC驅(qū)動(dòng)無核心馬達(dá)開始轉(zhuǎn)動(dòng),通過減速齒輪將動(dòng)力傳遞到擺臂,同時(shí)由位置檢測(cè)器送回信號(hào),判斷是否已經(jīng)到達(dá)定位。位置檢測(cè)器實(shí)際上是可變電阻,當(dāng)舵機(jī)轉(zhuǎn)動(dòng)時(shí)電阻值也會(huì)隨之改變,通過檢測(cè)電阻值就可以知道轉(zhuǎn)動(dòng)的角度[21]。SG90舵機(jī)的驅(qū)動(dòng)馬達(dá)采用細(xì)銅線纏繞在三極轉(zhuǎn)子上,當(dāng)電流流經(jīng)線圈時(shí)會(huì)產(chǎn)生磁場(chǎng),與轉(zhuǎn)子外圍的磁鐵產(chǎn)生排斥作用,從而產(chǎn)生轉(zhuǎn)動(dòng)的作用力。為了提高轉(zhuǎn)速和降低能耗,SG90舵機(jī)采用了空心杯馬達(dá)設(shè)計(jì),將細(xì)銅線纏繞成極薄的中空?qǐng)A柱體,并將磁鐵置于圓柱體內(nèi),使得轉(zhuǎn)子重量輕,轉(zhuǎn)動(dòng)快速。SG90舵機(jī)具有防水和防塵設(shè)計(jì),適合不同的工作環(huán)境。同時(shí),舵機(jī)的齒輪有塑膠和金屬之分,金屬齒輪的舵機(jī)一般具有大扭力和高速型的特點(diǎn),齒輪不會(huì)因負(fù)載過大而崩牙。SG90舵機(jī)廣泛應(yīng)用于模型、機(jī)器人、遙控車輛等領(lǐng)域,用于控制舵機(jī)的轉(zhuǎn)動(dòng)角度和位置,實(shí)現(xiàn)精確的控制和動(dòng)作。圖3-4舵機(jī)原理圖3.2.4風(fēng)速傳感器模塊設(shè)計(jì)風(fēng)速傳感器主要采用的是優(yōu)質(zhì)鋁合金型材,在表面進(jìn)行電鍍噴塑處理,它具有良好的防侵蝕,抗腐蝕特點(diǎn),可以有效的保證長(zhǎng)期使用的儀表不起銹,同時(shí)配合內(nèi)部順滑的軸承系統(tǒng)一起使用,確保了采集信息的準(zhǔn)確性。本系統(tǒng)采用的是485型風(fēng)速傳感器,它是一種性能優(yōu)越、可靠性高的智能儀器儀表,廣泛應(yīng)用于溫室、環(huán)保、氣象站、養(yǎng)殖等場(chǎng)所的風(fēng)速測(cè)量。風(fēng)速傳感器有很多種分類,主要可以分為皮托管式風(fēng)速傳感器、螺旋槳風(fēng)速傳感器、霍耳效應(yīng)電磁風(fēng)速傳感器、熱線式風(fēng)速傳感器以及超聲波風(fēng)速傳感器等。超聲波風(fēng)速傳感器主要是利用超聲波時(shí)差法來實(shí)現(xiàn)風(fēng)速的測(cè)量,聲音在空氣中的傳播速度,會(huì)和風(fēng)向上的氣流速度疊加。若超聲波的傳播方向與風(fēng)向相同,它的速度會(huì)加快;反之,它的速度會(huì)變慢。因此,在固定的檢測(cè)條件下,超聲波在空氣中傳播的速度可以和風(fēng)速函數(shù)對(duì)應(yīng)。通過計(jì)算即可得到精確的風(fēng)速和風(fēng)向。用于風(fēng)速測(cè)量的最廣泛使用的風(fēng)速計(jì)是轉(zhuǎn)杯式電動(dòng)風(fēng)速計(jì)。旋轉(zhuǎn)風(fēng)杯驅(qū)動(dòng)發(fā)電機(jī)。發(fā)電機(jī)的輸出運(yùn)行一個(gè)在風(fēng)速中校準(zhǔn)的電表。三杯風(fēng)速計(jì)目前被用作風(fēng)資源評(píng)估研究和實(shí)踐的行業(yè)標(biāo)準(zhǔn)。杯型風(fēng)速計(jì)由安裝在水平臂上的3或4個(gè)半球形杯組成,這些杯安裝在垂直軸上。在任何水平方向通過杯子的氣流以大致與風(fēng)速成比例的速度轉(zhuǎn)動(dòng)軸。因此,在設(shè)定的時(shí)間間隔內(nèi)計(jì)算軸的轉(zhuǎn)數(shù)會(huì)產(chǎn)生一個(gè)與速度范圍內(nèi)的平均風(fēng)速成比例的值。原理圖如下圖。圖3-5風(fēng)速傳感器原理圖3.2.5光敏電阻模塊設(shè)計(jì)圖3-6光敏電阻原理圖光敏電阻(Photoresistor)是一種能夠根據(jù)光照強(qiáng)度變化而改變電阻值的電子元件。它通常由半導(dǎo)體材料制成,其電阻值在光照強(qiáng)度變化時(shí)呈現(xiàn)顯著的非線性特性。原理:光敏電阻的工作原理基于光生電效應(yīng),即光照射到半導(dǎo)體材料上時(shí),會(huì)生成電子-空穴對(duì),從而改變材料的電導(dǎo)性能,進(jìn)而改變電阻值。結(jié)構(gòu):光敏電阻通常由半導(dǎo)體材料制成,其中最常見的材料包括硫化鎘(CdS)和硫化鋅(ZnS)。它們通常被包裹在透明或半透明的外殼內(nèi),以保護(hù)半導(dǎo)體材料不受外部環(huán)境的影響。特性:光敏電阻的電阻值通常在光照強(qiáng)度較強(qiáng)時(shí)較低,而在光照強(qiáng)度較弱時(shí)較高。這種特性使得光敏電阻在光照傳感、光控制、光測(cè)量等領(lǐng)域得到廣泛應(yīng)用。應(yīng)用:光敏電阻廣泛應(yīng)用于許多領(lǐng)域,包括照明控制、攝像頭自動(dòng)調(diào)光、光敏安全警報(bào)、光敏開關(guān)、光敏傳感器、光照度測(cè)量等。它們?cè)谧詣?dòng)化控制、電子設(shè)備、照明系統(tǒng)、安防系統(tǒng)等方面起著重要的作用。注意事項(xiàng):在使用光敏電阻時(shí),需注意光照強(qiáng)度范圍、光敏電阻的電壓和電流限制、溫度影響、光敏電阻的靈敏度、光敏電阻的壽命等因素,以確保其正常工作和準(zhǔn)確測(cè)量。保定理工學(xué)院畢業(yè)設(shè)計(jì)3.2.6HDR-F-2.54語音模塊設(shè)計(jì)HDR(高速數(shù)據(jù)傳輸技術(shù))是面向CDMA(碼分多址)的一種高速無線接入技術(shù),用于滿足高速數(shù)據(jù)通信需求。它是第三代(3G)移動(dòng)電話IMT-2000無線存取方式中CDMA陣營(yíng)提出的一種方式,由美國(guó)高通公司在1999年底正式亮相。HDR技術(shù)已經(jīng)在2000年9月份完成了技術(shù)規(guī)范,并于2002年開始商用。HDR被認(rèn)為成本低、功能強(qiáng)大,適用于多種固定和移動(dòng)通信設(shè)備,包括移動(dòng)電話、手持計(jì)算機(jī)、筆記本電腦無線調(diào)制解調(diào)器等,支持互聯(lián)網(wǎng)通信協(xié)議,傳輸率高達(dá)2.4Mbps。圖3-7語音模塊原理圖3.2.7雨量傳感器模塊設(shè)計(jì)雨量傳感器適用于氣象臺(tái)(站)、水文站、農(nóng)林、國(guó)防等有關(guān)部門用來遙測(cè)液體降水量、降水強(qiáng)度、降水起止時(shí)間。用于防洪、供水調(diào)度、電站水庫(kù)水情管理為目的水文自動(dòng)測(cè)報(bào)系統(tǒng)、自動(dòng)野外測(cè)報(bào)站,為降水測(cè)量傳感器。圖3-8雨量傳感器模塊原理圖系統(tǒng)的軟件設(shè)計(jì)4.1軟件主流程圖當(dāng)全部系統(tǒng)軟件通電時(shí),首先進(jìn)行的是單片機(jī)的初始化,成功后下位機(jī)中的溫濕度檢測(cè)控制模塊和風(fēng)速傳感器模塊通過收集現(xiàn)階段環(huán)境的溫濕度和風(fēng)速,在精確測(cè)量環(huán)境的溫度、環(huán)境的濕度和環(huán)境種的風(fēng)速后,數(shù)據(jù)采集模塊將傳輸數(shù)據(jù)到主控制板??刂破饕罁?jù)讀取到的溫濕度風(fēng)速數(shù)據(jù)信息和控制參數(shù)作出分辨。假如當(dāng)場(chǎng)檢測(cè)獲得的溫濕度主要參數(shù)在系統(tǒng)要求范疇內(nèi),則回到溫濕度檢測(cè)控制模塊再次下一輪檢測(cè)。假如檢測(cè)到現(xiàn)階段環(huán)境中的溫度和溫度超出控制參數(shù),便會(huì)運(yùn)行相對(duì)應(yīng)的機(jī)器設(shè)備,依照預(yù)置的操控方式,舵機(jī)對(duì)其做出相對(duì)應(yīng)的操作。如圖所示。圖4-1主流程圖4.2溫濕度采集模塊的軟件設(shè)計(jì)當(dāng)單片機(jī)初始化完成后,DHT11溫濕度傳感器會(huì)對(duì)周圍的溫度和濕度進(jìn)行采集并形成一個(gè)參數(shù)來表示溫度及濕度,若此數(shù)據(jù)在設(shè)定的范圍內(nèi),則觸發(fā)接下來的程序操作;若不在范圍內(nèi),則可選擇改變周圍環(huán)境后重新采集。圖4-2DHT11原理圖4.3光敏電阻模塊的軟件設(shè)計(jì)光敏電阻模塊對(duì)環(huán)境光強(qiáng)最敏感,一般用來檢測(cè)周圍環(huán)境的亮度和光強(qiáng)。當(dāng)單片機(jī)初始化完成后,光敏電阻會(huì)對(duì)周圍的光照進(jìn)行采集并形成一個(gè)參數(shù)來表示光照強(qiáng)度,若此數(shù)據(jù)在設(shè)定的范圍內(nèi),結(jié)合溫濕度傳感器采集的數(shù)據(jù),通過單片機(jī)對(duì)舵機(jī)做出指令;若不在范圍內(nèi),則可選擇改變周圍環(huán)境后重新采集。流程圖如下。圖4-3光敏電阻流程圖4.4風(fēng)速傳感器的軟件設(shè)計(jì)傳感器的VCC和Vin引腳由升壓轉(zhuǎn)換器模塊的輸出提供7.5V。當(dāng)單片機(jī)初始化完成后,風(fēng)速會(huì)被周圍的風(fēng)速影響而發(fā)生轉(zhuǎn)動(dòng),通過對(duì)風(fēng)速傳感器轉(zhuǎn)動(dòng)的幅度進(jìn)行分析。傳感器會(huì)形成一個(gè)參數(shù)來表示風(fēng)速,若此數(shù)據(jù)在設(shè)定的范圍內(nèi),則觸發(fā)接下來的翻蛋操作;若不在范圍內(nèi),則可選擇改變周圍環(huán)境后重新采集。實(shí)現(xiàn)其功能的流程圖如下。圖4-4風(fēng)速傳感器流程圖4.5藍(lán)牙模塊軟件設(shè)計(jì)HC-05是一個(gè)藍(lán)牙模塊,連接到微控制器的串行端口,允許微控制器通過藍(lán)牙連接與其他設(shè)備通信。模塊本身可以在主模式和從模式下運(yùn)行,并且可以用于各種應(yīng)用,例如,智能家居應(yīng)用,遠(yuǎn)程控制,數(shù)據(jù)記錄應(yīng)用,機(jī)器人,監(jiān)控系統(tǒng)等。該模塊隨時(shí)可用作完成的分線板(以及沒有分線板),通過標(biāo)準(zhǔn)串行連接連接到現(xiàn)有項(xiàng)目。當(dāng)全部系統(tǒng)軟件通電時(shí),首先進(jìn)行的是單片機(jī)的初始化,然后通過藍(lán)牙模塊HC-05進(jìn)行上位機(jī)與單片機(jī)直接的通信,流程如圖所示。圖4-5藍(lán)牙模塊流程圖4.6舵機(jī)模塊軟件設(shè)計(jì)首先開始單片機(jī)的初始化,初始化完成后單片機(jī)進(jìn)行設(shè)定的程序運(yùn)行,當(dāng)各個(gè)傳感器采集的數(shù)據(jù)達(dá)到異常時(shí)時(shí),舵機(jī)開始運(yùn)行,將衣服進(jìn)行收回。圖4-6舵機(jī)模塊流程圖4.7雨量傳感器模塊軟件設(shè)計(jì)首先開始單片機(jī)的初始化,初始化完成后單片機(jī)進(jìn)行設(shè)定的程序運(yùn)行,當(dāng)雨量傳感器采集的數(shù)據(jù)達(dá)到要求時(shí),舵機(jī)開始運(yùn)行,將衣服進(jìn)行收回。圖4-7雨量傳感器模塊軟件設(shè)計(jì)4.8HDR-F-2.54語音模塊軟件設(shè)計(jì)首先開始單片機(jī)的初始化,初始化完成后單片機(jī)進(jìn)行設(shè)定的程序運(yùn)行,采集的數(shù)據(jù)會(huì)進(jìn)行語音的播報(bào)。圖4-8語音模塊軟件設(shè)計(jì)第5章系統(tǒng)測(cè)試5.1系統(tǒng)實(shí)物圖圖5-1系統(tǒng)完整實(shí)物圖5.2測(cè)試原理圖5-2如圖5-2為藍(lán)牙模塊,實(shí)現(xiàn)上位機(jī)與下位機(jī)之間的實(shí)時(shí)通信。圖5-3如圖5-3為溫濕度傳感器,實(shí)時(shí)監(jiān)測(cè)溫濕度情況,當(dāng)檢測(cè)的數(shù)據(jù)異常時(shí),收回晾出的衣服。圖5-4如圖5-4為光照檢測(cè)模塊,通過光敏電阻來監(jiān)測(cè)光照強(qiáng)度,當(dāng)采集的光照強(qiáng)度數(shù)據(jù)異常時(shí),收回晾出的衣服。圖5-5如圖5-5位風(fēng)速傳感器,實(shí)時(shí)監(jiān)測(cè)當(dāng)前風(fēng)速,當(dāng)超過閾值時(shí),收回晾出的衣服。圖5-6如圖5-6為舵機(jī)模塊,用來模擬晾出和收回衣服,反轉(zhuǎn)半周圍晾出衣服,正轉(zhuǎn)半軸為收回衣服。圖5-7如圖5-7為繼電器模塊,通過該模塊模擬烘干機(jī)工作。圖5-8如圖5-8為雨水傳感器模塊,通過該模塊檢測(cè)雨水。圖5-9如圖5-9為語音模塊,通過該模塊可以實(shí)現(xiàn)語音控制播報(bào)。圖5-10如圖5-10為上位機(jī)端手機(jī)界面,連接藍(lán)牙后,實(shí)時(shí)顯示當(dāng)前藍(lán)牙狀態(tài)、系統(tǒng)時(shí)間、溫度、亮度、風(fēng)速、是否在晾衣服、烘干狀態(tài)和是否下雨等數(shù)據(jù),且與下位機(jī)的數(shù)據(jù)一致;可以設(shè)置溫度、亮度和風(fēng)速閾值,當(dāng)檢測(cè)的數(shù)據(jù)超過閾值時(shí),自動(dòng)收回衣服。語音控制烘干關(guān)閉和晾衣架打開收回。5.3晾出和收回功能測(cè)試圖5-11晾出圖5-12收回如圖所示,在圖5-11中,可以看到顯示的是1,表明我們的衣服已經(jīng)處在了晾出的效果上。在圖5-12中,可以看到顯示的是0,這表明了我們的衣服已經(jīng)收回,實(shí)現(xiàn)了通過控制溫濕度、亮度、風(fēng)速等閾值來控制我們晾衣架實(shí)現(xiàn)自動(dòng)收回和晾出。第6章總結(jié)與展望6.1總結(jié)在系統(tǒng)軟件的調(diào)試過程中,并不是一帆風(fēng)順,出現(xiàn)了一些錯(cuò)誤。但是在老師的指導(dǎo)下,發(fā)現(xiàn)了這些問題的所在及時(shí)的做出了修正,問題的所在主要包括了以下層面。焊接問題,在組裝這些元件焊接到電路板的時(shí)候,焊接技術(shù)不足,焊接的效果不理想,需要多次重新焊接。仿真過程,在仿真過程中,出現(xiàn)一些代碼錯(cuò)誤的問題,自己很難看出,通過老師的指正,及時(shí)做出了修改。6.2展望隨著科技的不斷發(fā)展和人們生活水平的提高,遠(yuǎn)程智能晾衣架作為一種現(xiàn)代化的家居設(shè)備,在未來有著廣闊的應(yīng)用前景。本文在基于單片機(jī)的遠(yuǎn)程智能晾衣架的設(shè)計(jì)和實(shí)現(xiàn)方面取得了一定的研究成果,但仍存在一些潛在的改進(jìn)和發(fā)展空間。未來可以進(jìn)一步提升智能晾衣架的智能化水平。目前,晾衣架主要依賴傳感器和單片機(jī)實(shí)現(xiàn)對(duì)風(fēng)速、溫度等環(huán)境參數(shù)的檢測(cè)和控制,但仍有進(jìn)一步改進(jìn)的空間。例如,可以引入更多的傳感器,如濕度傳感器、光照傳感器等,實(shí)現(xiàn)對(duì)衣物狀態(tài)和環(huán)境條件的更加精準(zhǔn)的監(jiān)測(cè)和控制,從而提供更加智能化的晾衣體驗(yàn)。同時(shí),可以借助人工智能技術(shù),通過學(xué)習(xí)用戶的使用習(xí)慣和衣物的屬性,自動(dòng)優(yōu)化晾衣架的工作模式,提供個(gè)性化的晾衣解決方案。基于單片機(jī)的遠(yuǎn)程智能晾衣架在未來有著廣闊的應(yīng)用前景。通過進(jìn)一步提升智能化水平、拓展遠(yuǎn)程控制功能、優(yōu)化設(shè)計(jì)和材料選用、推廣應(yīng)用范圍、優(yōu)化能源消耗以及與其他智能家居設(shè)備的聯(lián)動(dòng)和互聯(lián)網(wǎng)家居的整合,智能晾衣架將會(huì)更加智能化、便捷化、環(huán)?;?,并為用戶提供更加舒適和便利的晾衣體驗(yàn)。隨著科技的不斷創(chuàng)新和發(fā)展,智能晾衣架將在未來不斷演進(jìn),為人們的生活帶來更多的便利和舒適。
參考文獻(xiàn)[1]閆虹潤(rùn).一種用于交通運(yùn)輸管理的監(jiān)控?cái)z像頭[J].:,CN210440931U[P].2020.鄭曉茜,邵帥飛.溫室大棚環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)[J].南方論壇10.3969/j.issn.1672-3872.2021.19.007[2]郭銘,王佳佳.基于STM32智能家居濕度控制系統(tǒng)[J].內(nèi)蒙古科技與經(jīng)濟(jì)1007—6921(2021)24—0081—03[3]王莉,王宏濤.基于物聯(lián)網(wǎng)的實(shí)驗(yàn)室溫度遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].電子制作,2020(13):10-12..[4]鄭艷森,駱旭坤.基于MQTT的智能晾衣架遠(yuǎn)程監(jiān)控系統(tǒng)[J].2020[5]任森偉,朱麗軍,李晨浩,薛夢(mèng)嬌,楊立娜.基于遠(yuǎn)程監(jiān)控的智能晾衣架實(shí)驗(yàn)系統(tǒng)研制[J].科學(xué)技術(shù)創(chuàng)新2021.[6]苗玉剛,何玉輝,李云自動(dòng)折疊式太陽能板的設(shè)計(jì)[J].2020[7]陳林奎,徐鶴.基于NB-IoT的課堂管理系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2020.[8]鄭艷森,駱旭坤.基于MQTT的智能晾衣架遠(yuǎn)程監(jiān)控系統(tǒng)[J].泉州師范學(xué)院學(xué)報(bào),2020,38(02):78-83.[9]劉偉,楊中良,朱思言,潘露露.基于網(wǎng)絡(luò)遠(yuǎn)程控制的自動(dòng)晾衣系統(tǒng)設(shè)計(jì)[J].周口師范學(xué)院學(xué)報(bào),2016,33(05):75-77.[10]何永晟.智能晾衣架設(shè)計(jì)[J].科技資訊,2022,20(18):70-73.[11]吳靜怡,沈懷斌.智能晾衣架[J].發(fā)明與創(chuàng)新(高中生),2021(12):22-25.[12]陳鵬,李陽軍.智能晾衣架的設(shè)計(jì)與實(shí)現(xiàn)[J].電子世界,2021(17):166-167.DOI:10.19353/ki.dzsj.2021.17.067.[13]馮少鵬,方靜池.一種智能晾衣架的創(chuàng)新設(shè)計(jì)[J].技術(shù)與市場(chǎng),2020,27(05):41-42.[14]謝浩源,鄭建曉,李志宏.基于STM32的智能晾衣架控制系統(tǒng)設(shè)計(jì)[J].南方農(nóng)機(jī),2020,51(07):91-92+95.[15]張宇,湯志鵬,袁志剛,顧秋宇,靳敏.智能晾衣系統(tǒng)[J].內(nèi)江科技,2022,43(12):56-57.[16]許冬雪,魏芳,邢春曉,侯躍達(dá),張議心,何士海.一種新型智能伸縮晾曬衣架的設(shè)計(jì)[J].新疆農(nóng)機(jī)化,2022(04):17-19.[17]CaoWang,QiqiMei,LinglingZeng.TheWarehouseTemperatureandHumidityMeasurementandControlSystemBasedonSCMJ.JournalofResearchinScienceandEngineering,2020,2(6).[18]N.NursultanovW.J.B.HeffernanM.J.WM.RvanHerel,J.J.Nijdam.ComputationalcalculationoftemperatureandelectricalresistancetocontrolJouleheatingofgreenPinusradiatalogsJAppliedThermalEngineering,2019159.[19]MinCheng,JunhuiZhang,BingXuRuqiDing,GengYang.Anti-windupschemeoftheelectronicloadsensingpumpviaswitchedflow/powercontrol[].Mechatronics,2019.[20]MilesL.MorganDanJ.Curtis,DavideDeganello.Controlofmorphologicalandelectricalpropertiesofflexographicprintedelectronicsthroughtailoredinkrheology[1].OrganicElectronics,2019.[21]A.G.Madureira,J.A.Pe?asLopes.Ancillaryservicesmarketframeworkforvoltagecontrolindistributionnetworkswithmicrogrids[J].ElectricPowerSystemsResearch,2012,86件,2021,42(08):153-155.
附錄源代碼#include"dht11.h"#include"delay.h"u8temperature,humidity;//復(fù)位DHT11voidDHT11_Rst(void) { DHT11_IO_OUT(); //SETOUTPUT DHT11_DQ_OUT=0; //拉低DQ delay_ms(20); //拉低至少18ms DHT11_DQ_OUT=1; //DQ=1 delay_us(30); //主機(jī)拉高20~40us}//等待DHT11的回應(yīng)//返回1:未檢測(cè)到DHT11的存在//返回0:存在u8DHT11_Check(void) { u8retry=0; DHT11_IO_IN();//SETINPUT while(DHT11_DQ_IN&&retry<100)//DHT11會(huì)拉低40~80us { retry++; delay_us(1); }; if(retry>=100)return1; elseretry=0;while(!DHT11_DQ_IN&&retry<100)//DHT11拉低后會(huì)再次拉高40~80us { retry++; delay_us(1); }; if(retry>=100)return1; return0;}//從DHT11讀取一個(gè)位//返回值:1/0u8DHT11_Read_Bit(void) { u8retry=0; while(DHT11_DQ_IN&&retry<100)//等待變?yōu)榈碗娖?{ retry++; delay_us(1); } retry=0; while(!DHT11_DQ_IN&&retry<100)//等待變高電平 { retry++; delay_us(1); } delay_us(40);//等待40us if(DHT11_DQ_IN)return1; elsereturn0; }//從DHT11讀取一個(gè)字節(jié)//返回值:讀到的數(shù)據(jù)u8DHT11_Read_Byte(void){ u8i,dat; dat=0; for(i=0;i<8;i++) { dat<<=1; dat|=DHT11_Read_Bit(); } returndat;}//從DHT11讀取一次數(shù)據(jù)//temp:溫度值(范圍:0~50°)//humi:濕度值(范圍:20%~90%)//返回值:0,正常;1,讀取失敗u8DHT11_Read_Data(u8*temp,u8*humi){ u8buf[5]; u8i; DHT11_Rst(); if(DHT11_Check()==0) { for(i=0;i<5;i++)//讀取40位數(shù)據(jù) { buf[i]=DHT11_Read_Byte(); } if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4]) { *humi=buf[0]; *temp=buf[2]; } }elsereturn1; return0; }//初始化DHT11的IO口DQ同時(shí)檢測(cè)DHT11的存在//返回1:不存在//返回0:存在 u8DHT11_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //使能PG端口時(shí)鐘 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0; //PA4端口配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽輸出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); //初始化IO口 GPIO_SetBits(GPIOB,GPIO_Pin_0); //PE11輸出高 DHT11_Rst();//復(fù)位DHT11 returnDHT11_Check();//等待DHT11的回應(yīng)}#include"dht11.h"#include"delay.h"u8temperature,humidity;//復(fù)位DHT11voidDHT11_Rst(void) { DHT11_IO_OUT(); //SETOUTPUT DHT11_DQ_OUT=0; //拉低DQ delay_ms(20); //拉低至少18ms DHT11_DQ_OUT=1; //DQ=1 delay_us(30); //主機(jī)拉高20~40us}//等待DHT11的回應(yīng)//返回1:未檢測(cè)到DHT11的存在//返回0:存在u8DHT11_Check(void) { u8retry=0; DHT11_IO_IN();//SETINPUT while(DHT11_DQ_IN&&retry<100)//DHT11會(huì)拉低40~80us { retry++; delay_us(1); }; if(retry>=100)return1; elseretry=0;while(!DHT11_DQ_IN&&retry<100)//DHT11拉低后會(huì)再次拉高40~80us { retry++; delay_us(1); }; if(retry>=100)return1; return0;}//從DHT11讀取一個(gè)位//返回值:1/0u8DHT11_Read_Bit(void) { u8retry=0; while(DHT11_DQ_IN&&retry<100)//等待變?yōu)榈碗娖?{ retry++; delay_us(1); } retry=0; while(!DHT11_DQ_IN&&retry<100)//等待變高電平 { retry++; delay_us(1); } delay_us(40);//等待40us if(DHT11_DQ_IN)return1; elsereturn0; }//從DHT11讀取一個(gè)字節(jié)//返回值:讀到的數(shù)據(jù)u8DHT11_Read_Byte(void){ u8i,dat; dat=0; for(i=0;i<8;i++) { dat<<=1; dat|=DHT11_Read_Bit(); } returndat;}//從DHT11讀取一次數(shù)據(jù)//temp:溫度值(范圍:0~50°)//humi:濕度值(范圍:20%~90%)//返回值:0,正常;1,讀取失敗u8DHT11_Read_Data(u8*temp,u8*humi){ u8buf[5]; u8i; DHT11_Rst(); if(DHT11_Check()==0) { for(i=0;i<5;i++)//讀取40位數(shù)據(jù) { buf[i]=DHT11_Read_Byte(); } if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4]) { *humi=buf[0]; *temp=buf[2]; } }elsereturn1; return0; }//初始化DHT11的IO口DQ同時(shí)檢測(cè)DHT11的存在//返回1:不存在//返回0:存在 u8DHT11_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //使能PG端口時(shí)鐘 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0; //PA4端口配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽輸出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); //初始化IO口 GPIO_SetBits(GPIOB,GPIO_Pin_0); //PE11輸出高 DHT11_Rst();//復(fù)位DHT11 returnDHT11_Check();//等待DHT11的回應(yīng)}#include"includes.h"u8shidu_max=50;u16liangdu_min=1500;u16fengsu_min=400;u8liangyifu=0;u8state=0;sys_timjiance_tim;voidapp(void){ u8shangchuan[256]; if(sys_running_timer.ms-jiance_tim.ms>1000) { DHT11_Read_Data(&temperature,&humidity); //?áè???êa?è?μ if(liangyifu) { if(humidity>shidu_max||adc_value[0]<liangdu_min||adc_value[1]>fengsu_min) { DaoZhuan;state=0; } else { ZhengZhuan;state=1; } } sprintf(shangchuan,"+H%02dL%04dF%04dU%dS%d-", humidity,adc_value[0],adc_value[1],liangyifu,state); USART3_send_buf(shangchuan,19); jiance_tim=sys_running_timer; } }#include"includes.h"intmain(void){ u8t=0; delay_init(); //延時(shí)函數(shù)初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); USART1_Config(115200); //串口初始化為9600 USART3_Config(9600);//藍(lán)牙模組 adc_init(); DHT11_Init(); TIM3_PWM_Init();//舵機(jī)定時(shí)器初始化 system_Time_Init(9,7199); sys_gpio_init(); while(1) { app(); }}#include"delay.h"http:////////////////////////////////////////////////////////////////////////////////// //如果需要使用OS,則包括下面的頭文件即可.#ifSYSTEM_SUPPORT_OS#include"includes.h" //ucos使用 #endif//V1.2修改說明//修正了中斷中調(diào)用出現(xiàn)死循環(huán)的錯(cuò)誤//防止延時(shí)不準(zhǔn)確,采用dowhile結(jié)構(gòu)!//V1.3修改說明//增加了對(duì)UCOSII延時(shí)的支持.//如果使用ucosII,delay_init會(huì)自動(dòng)設(shè)置SYSTICK的值,使之與ucos的TICKS_PER_SEC對(duì)應(yīng).//delay_ms和delay_us也進(jìn)行了針對(duì)ucos的改造.//delay_us可以在ucos下使用,而且準(zhǔn)確度很高,更重要的是沒有占用額外的定時(shí)器.//delay_ms在ucos下,可以當(dāng)成OSTimeDly來用,在未啟動(dòng)ucos時(shí),它采用delay_us實(shí)現(xiàn),從而準(zhǔn)確延時(shí)//可以用來初始化外設(shè),在啟動(dòng)了ucos之后delay_ms根據(jù)延時(shí)的長(zhǎng)短,選擇OSTimeDly實(shí)現(xiàn)或者delay_us實(shí)現(xiàn).//V1.4修改說明20110929//修改了使用ucos,但是ucos未啟動(dòng)的時(shí)候,delay_ms中中斷無法響應(yīng)的bug.//V1.5修改說明20120902//在delay_us加入ucos上鎖,防止由于ucos打斷delay_us的執(zhí)行,可能導(dǎo)致的延時(shí)不準(zhǔn)。//V1.6修改說明20150109//在delay_ms加入OSLockNesting判斷。//V1.7修改說明20150319//修改OS支持方式,以支持任意OS(不限于UCOSII和UCOSIII,理論上任意OS都可以支持)//添加:delay_osrunning/delay_ostickspersec/delay_osintnesting三個(gè)宏定義//添加:delay_osschedlock/delay_osschedunlock/delay_ostimedly三個(gè)函數(shù)//V1.8修改說明20150519//修正UCOSIII支持時(shí)的2個(gè)bug://delay_tickspersec改為:delay_ostickspersec//delay_intnesting改為:delay_osintnesting//////////////////////////////////////////////////////////////////////////////////staticu8fac_us=0; //us延時(shí)倍乘數(shù) staticu16fac_ms=0; //ms延時(shí)倍乘數(shù),在ucos下,代表每個(gè)節(jié)拍的ms數(shù) #ifSYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS定義了,說明要支持OS了(不限于UCOS).//當(dāng)delay_us/delay_ms需要支持OS的時(shí)候需要三個(gè)與OS相關(guān)的宏定義和函數(shù)來支持//首先是3個(gè)宏定義://delay_osrunning:用于表示OS當(dāng)前是否正在運(yùn)行,以決定是否可以使用相關(guān)函數(shù)//delay_ostickspersec:用于表示OS設(shè)定的時(shí)鐘節(jié)拍,delay_init將根據(jù)這個(gè)參數(shù)來初始哈systick//delay_osintnesting:用于表示OS中斷嵌套級(jí)別,因?yàn)橹袛嗬锩娌豢梢哉{(diào)度,delay_ms使用該參數(shù)來決定如何運(yùn)行//然后是3個(gè)函數(shù)://delay_osschedlock:用于鎖定OS任務(wù)調(diào)度,禁止調(diào)度//delay_osschedunlock:用于解鎖OS任務(wù)調(diào)度,重新開啟調(diào)度//delay_ostimedly:用于OS延時(shí),可以引起任務(wù)調(diào)度.//本例程僅作UCOSII和UCOSIII的支持,其他OS,請(qǐng)自行參考著移植//支持UCOSII#ifdef OS_CRITICAL_METHOD //OS_CRITICAL_METHOD定義了,說明要支持UCOSII #definedelay_osrunning OSRunning //OS是否運(yùn)行標(biāo)記,0,不運(yùn)行;1,在運(yùn)行#definedelay_ostickspersec OS_TICKS_PER_SEC //OS時(shí)鐘節(jié)拍,即每秒調(diào)度次數(shù)#definedelay_osintnesting OSIntNesting //中斷嵌套級(jí)別,即中斷嵌套次數(shù)#endif//支持UCOSIII#ifdef CPU_CFG_CRITICAL_METHOD //CPU_CFG_CRITICAL_METHOD定義了,說明要支持UCOSIII #definedelay_osrunning OSRunning //OS是否運(yùn)行標(biāo)記,0,不運(yùn)行;1,在運(yùn)行#definedelay_ostickspersec OSCfg_TickRate_Hz //OS時(shí)鐘節(jié)拍,即每秒調(diào)度次數(shù)#definedelay_osintnesting OSIntNestingCtr //中斷嵌套級(jí)別,即中斷嵌套次數(shù)#endif//us級(jí)延時(shí)時(shí),關(guān)閉任務(wù)調(diào)度(防止打斷us級(jí)延遲)voiddelay_osschedlock(void){#ifdefCPU_CFG_CRITICAL_METHOD //使用UCOSIII OS_ERRerr; OSSchedLock(&err); //UCOSIII的方式,禁止調(diào)度,防止打斷us延時(shí)#else //否則UCOSII OSSchedLock(); //UCOSII的方式,禁止調(diào)度,防止打斷us延時(shí)#endif}//us級(jí)延時(shí)時(shí),恢復(fù)任務(wù)調(diào)度voiddelay_osschedunlock(void){ #ifdefCPU_CFG_CRITICAL_METHOD //使用UCOSIII OS_ERRerr; OSSchedUnlock(&err); //UCOSIII的方式,恢復(fù)調(diào)度#else //否則UCOSII OSSchedUnlock(); //UCOSII的方式,恢復(fù)調(diào)度#endif}//調(diào)用OS自帶的延時(shí)函數(shù)延時(shí)//ticks:延時(shí)的節(jié)拍數(shù)voiddelay_ostimedly(u32ticks){#ifdefCPU_CFG_CRITICAL_METHOD OS_ERRerr; OSTimeDly(ticks,OS_OPT_TIME_PERIODIC,&err); //UCOSIII延時(shí)采用周期模式#else OSTimeDly(ticks); //UCOSII延時(shí)#endif}//systick中斷服務(wù)函數(shù),使用ucos時(shí)用到voidSysTick_Handler(void){ if(delay_osrunning==1) //OS開始跑了,才執(zhí)行正常的調(diào)度處理 { OSIntEnter(); //進(jìn)入中斷 OSTimeTick(); //調(diào)用ucos的時(shí)鐘服務(wù)程序 OSIntExit(); //觸發(fā)任務(wù)切換軟中斷 }}#endif //初始化延遲函數(shù)//當(dāng)使用OS的時(shí)候,此函數(shù)會(huì)初始化OS的時(shí)鐘節(jié)拍//SYSTICK的時(shí)鐘固定為HCLK時(shí)鐘的1/8//SYSCLK:系統(tǒng)時(shí)鐘voiddelay_init(){#ifSYSTEM_SUPPORT_OS //如果需要支持OS. u32reload;#endif SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //選擇外部時(shí)鐘HCLK/8 fac_us=SystemCoreClock/8000000; //為系統(tǒng)時(shí)鐘的1/8#ifSYSTEM_SUPPORT_OS //如果需要支持OS. reload=SystemCoreClock/8000000; //每秒鐘的計(jì)數(shù)次數(shù)單位為M reload*=1000000/delay_ostickspersec; //根據(jù)delay_ostickspersec設(shè)定溢出時(shí)間 //reload為24位寄存器,最大值:16777216,在72M下,約合1.86s左右 fac_ms=1000/delay_ostickspersec; //代表OS可以延時(shí)的最少單位 SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk; //開啟SYSTICK中斷 SysTick->LOAD=reload; //每1/delay_ostickspersec秒中斷一次 SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //開啟SYSTICK#else fac_ms=(u16)fac_us*1000; //非OS下,代表每個(gè)ms需要的systick時(shí)鐘數(shù)#endif} #ifSYSTEM_SUPPORT_OS //如果需要支持OS.//延時(shí)nus//nus為要延時(shí)的us數(shù). voiddelay_us(u32nus){ u32ticks; u32told,tnow,tcnt=0; u32reload=SysTick->LOAD; //LOAD的值 ticks=nus*fac_us; //需要的節(jié)拍數(shù) tcnt=0; delay_osschedlock(); //阻止OS調(diào)度,防止打斷us延時(shí) told=SysTick->VAL; //剛進(jìn)入時(shí)的計(jì)數(shù)器值 while(1) { tnow=SysTick->VAL; if(tnow!=told) { if(tnow<told)tcnt+=told-tnow; //這里注意一下SYSTICK是一個(gè)遞減的計(jì)數(shù)器就可以了. elsetcnt+=reload-tnow+told; told=tnow; if(tcnt>=ticks)break; //時(shí)間超過/等于要延遲的時(shí)間,則退出. } }; delay_osschedunlock(); //恢復(fù)OS調(diào)度 }//延時(shí)nms//nms:要延時(shí)的ms數(shù)voiddelay_ms(u16nms){ if(delay_osrunning&&delay_osintnesting==0) //如果OS已經(jīng)在跑了,并且不是在中斷里面(中斷里面不能任務(wù)調(diào)度) { if(nms>=fac_ms) //延時(shí)的時(shí)間大于OS的最少時(shí)間周期 { delay_ostimedly(nms/fac_ms); //OS延時(shí) } nms%=fac_ms; //OS已經(jīng)無法提供這么小的延時(shí)了,采用普通方式延時(shí) } delay_us((u32)(nms*1000)); //普通方式延時(shí)}#else//不用OS時(shí)//延時(shí)nus//nus為要延時(shí)的us數(shù). voiddelay_us(u32nus){ u32temp; SysTick->LOAD=nus*fac_us; //時(shí)間加載 SysTick->VAL=0x00; //清空計(jì)數(shù)器 SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //開始倒數(shù) do { temp=SysTick->CTRL; }while((temp&0x01)&&!(temp&(1<<16))); //等待時(shí)間到達(dá) SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //關(guān)閉計(jì)數(shù)器 SysTick->VAL=0X00; //清空計(jì)數(shù)器 }//延時(shí)nms//注意nms的范圍//SysTick->LOAD為24位寄存器,所以,最大延時(shí)為://nms<=0xffffff*8*1000/SYSCLK//SYSCLK單位為Hz,nms單位為ms//對(duì)72M條件下,nms<=1864voiddelay_ms(u16nms){ u32temp; SysTick->LOAD=(u32)nms*fac_ms; //時(shí)間加載(SysTick->LOAD為24bit) SysTick->VAL=0x00; //清空計(jì)數(shù)器 SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //開始倒數(shù) do { temp=SysTick->CTRL; }while((temp&0x01)&&!(temp&(1<<16))); //等待時(shí)間到達(dá) SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //關(guān)閉計(jì)數(shù)器 SysTick->VAL=0X00; //清空計(jì)數(shù)器 }#endif#include"tim.h"/*定時(shí)器模塊,該模塊基本作用提供一個(gè)系統(tǒng)運(yùn)行的時(shí)間基準(zhǔn),定時(shí)方式選擇TIMER2定時(shí)器,放棄滴答時(shí)鐘和RTC避免移植帶來的問題*/sys_timsys_running_timer;//定時(shí)器初始化,系統(tǒng)以毫秒計(jì)時(shí),初始化的參數(shù)為:system_Time_Init(9,7199);//8M晶振voidsystem_Time_Init(u16arr,u16psc){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure; NVIC_InitTypeDefNVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//時(shí)鐘使能 TIM_TimeBaseStructure.TIM_Period=arr;//設(shè)置在下一個(gè)更新事件裝入活動(dòng)的自動(dòng)重裝載寄存器周期的值 計(jì)數(shù)到5000為500ms TIM_TimeBaseStructure.TIM_Prescaler=psc;//設(shè)置用來作為TIMx時(shí)鐘頻率除數(shù)的預(yù)分頻值10Khz的計(jì)數(shù)頻率 TIM_TimeBaseStructure.TIM_ClockDivision=0;//設(shè)置時(shí)鐘分割:TDTS=Tck_tim TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//TIM向上計(jì)數(shù)模式 TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);//根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx的時(shí)間基數(shù)單位 TIM_ClearITPendingBit(TIM2,TIM_IT_Update); TIM_ITConfig(//使能或者失能指定的TIM中斷 TIM2,//TIM2 TIM_IT_Update, ENABLE//使能 ); NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn;//TIM3中斷 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//先占優(yōu)先級(jí)0級(jí) NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;//從優(yōu)先級(jí)3級(jí) NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;//IRQ通道被使能 NVIC_Init(&NVIC_InitStructure);//根據(jù)NVIC_InitStruct中指定的參數(shù)初始化外設(shè)NVIC寄存器 TIM_Cmd(TIM2,ENABLE);//使能TIMx外設(shè) sys_running_timer.ms=0; sys_running_timer.sec=0;}voidTIM2_IRQHandler(void)//TIM3中斷{ if(TIM_GetITStatus(TIM2,TIM_IT_Update)!=RESET)//檢查指定的TIM中斷發(fā)生與否:TIM中斷源 { TIM_ClearITPendingBit(TIM2,TIM_IT_Update);//清除TIMx的中斷待處理位:TIM中斷源 sys_running_timer.ms+=1; if(sys_running_timer.ms%1000==0)sys_running_timer.sec++; }}#include"usart.h" #include"string.h"#include"app.h"#include"timer.h"u8DMA_UART1_data[DMA_UART1_data_len];voidUSART1_Config(u32bound){//GPIO端口設(shè)置GPIO_InitTypeDefGPIO_InitStructure; USART_InitTypeDefUSART_InitStructure; NVIC_InitTypeDefNVIC_InitStructure; DMA_InitTypeDefDMA_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //USART1_TXGPIOA.9GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//PA.9GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; //復(fù)用推挽輸出GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化GPIOA.9//USART1_RX GPIOA.10初始化GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//PA10GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//浮空輸入GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化GPIOA.10//Usart1NVIC配置NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=4;//搶占優(yōu)先級(jí)4 NVIC_InitStructure.NVIC_IRQChannelSubPriority=1; //子優(yōu)先級(jí)1 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //IRQ通道使能 NVIC_Init(&NVIC_InitStructure); //根據(jù)指定的參數(shù)初始化NVIC寄存器//USART初始化設(shè)置USART_DeInit(USART1); USART_InitStructure.USART_BaudRate=bound;//串口波特率 USART_InitStructure.USART_WordLength=USART_WordLength_8b;//字長(zhǎng)為8位數(shù)據(jù)格式 USART_InitStructure.USART_StopBits=USART_StopBits_1;//一個(gè)停止位 USART_InitStructure.USART_Parity=USART_Parity_No;//無奇偶校驗(yàn)位 USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//無硬件數(shù)據(jù)流控制 USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx; //收發(fā)模式USART_Init(USART1,&USART_InitStructure);//初始化串口1 USART_ITConfig(USART1,USART_IT_IDLE,ENABLE); USART_DMACmd(USART1,USART_DMAReq_Rx,ENABLE);USART_Cmd(USART1,ENABLE);//使能串口1 DMA_DeInit(DMA1_Channel5); DMA_InitStructure.DMA_PeripheralBaseAddr=(u32)(&USART1->DR); DMA_InitStructure.DMA_MemoryBaseAddr=(u32)DMA_UART1_data; DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC; DMA_InitStructure.DMA_BufferSize=DMA_UART1_data_len; DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_Byte; DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_Byte; DMA_InitStructure.DMA_Mode=DMA_Mode_Normal; DMA_InitStructure.DMA_Priority=DMA_Priority_High; DMA_InitStructure.DMA_M2M=DMA_M2M_Disable; DMA_Init(DMA1_Channel5,&DMA_InitStructure); DMA_Cmd(DMA1_Channel5,ENABLE);}voidUSART1_IRQHandler(void)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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年度公路橋梁維修加固材料供應(yīng)合同
- 2025年度物流設(shè)備租賃合同標(biāo)準(zhǔn)模板
- 2025年度股東合同范本:環(huán)保技術(shù)引進(jìn)與應(yīng)用合作協(xié)議
- 2025年度人工智能應(yīng)用項(xiàng)目股權(quán)并購(gòu)與市場(chǎng)推廣合同
- 2025年度精裝修租賃合同樣本-購(gòu)物中心租賃合作
- 2025年度多式聯(lián)運(yùn)合同匯編與物流優(yōu)化方案
- 2025年度房產(chǎn)抵押借款合同模板(全新修訂版)
- 2025年度果樹種植基地承包與農(nóng)業(yè)科技推廣合同
- 2025年保修合同擔(dān)保合同
- 常用版物流運(yùn)輸合同范本4
- cpk自動(dòng)計(jì)算電子表格表格
- 2024-2025學(xué)年湖北省武漢市部分重點(diǎn)中學(xué)高一上學(xué)期期末聯(lián)考數(shù)學(xué)試卷(含答案)
- 2025年浙江省交通投資集團(tuán)財(cái)務(wù)共享服務(wù)中心招聘2名高頻重點(diǎn)提升(共500題)附帶答案詳解
- 做投標(biāo)文件培訓(xùn)
- 9.4+跨學(xué)科實(shí)踐:制作簡(jiǎn)易活塞式抽水機(jī)課件+-2024-2025學(xué)年人教版物理八年級(jí)下冊(cè)
- 建筑工程工作計(jì)劃
- 2025年中國(guó)國(guó)際投資促進(jìn)中心限責(zé)任公司招聘管理單位筆試遴選500模擬題附帶答案詳解
- 瓶裝液化氣送氣工培訓(xùn)
- 外科護(hù)理課程思政課程標(biāo)準(zhǔn)
- 船舶航行安全
- 9.2溶解度(第1課時(shí)飽和溶液不飽和溶液)+教學(xué)設(shè)計(jì)-2024-2025學(xué)年九年級(jí)化學(xué)人教版(2024)下冊(cè)
評(píng)論
0/150
提交評(píng)論