第十一屆藍(lán)橋杯物聯(lián)網(wǎng)設(shè)計(jì)與開(kāi)發(fā)項(xiàng)目決賽第二部分程序設(shè)計(jì)試題_第1頁(yè)
第十一屆藍(lán)橋杯物聯(lián)網(wǎng)設(shè)計(jì)與開(kāi)發(fā)項(xiàng)目決賽第二部分程序設(shè)計(jì)試題_第2頁(yè)
第十一屆藍(lán)橋杯物聯(lián)網(wǎng)設(shè)計(jì)與開(kāi)發(fā)項(xiàng)目決賽第二部分程序設(shè)計(jì)試題_第3頁(yè)
第十一屆藍(lán)橋杯物聯(lián)網(wǎng)設(shè)計(jì)與開(kāi)發(fā)項(xiàng)目決賽第二部分程序設(shè)計(jì)試題_第4頁(yè)
第十一屆藍(lán)橋杯物聯(lián)網(wǎng)設(shè)計(jì)與開(kāi)發(fā)項(xiàng)目決賽第二部分程序設(shè)計(jì)試題_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第??屆藍(lán)橋杯物聯(lián)?設(shè)計(jì)與開(kāi)發(fā)項(xiàng)?決賽第?部分程序設(shè)計(jì)試題第??屆藍(lán)橋杯物聯(lián)?設(shè)計(jì)與開(kāi)發(fā)項(xiàng)?決賽第?部分程序設(shè)計(jì)試題1.基本要求略2.系統(tǒng)框圖3.硬件配置4.功能要求解題思路藍(lán)橋杯的物聯(lián)?設(shè)計(jì)與開(kāi)發(fā)是可以使?STM32CodeMX軟件來(lái)對(duì)引腳配置初始化的,對(duì)于本題,我個(gè)?在學(xué)習(xí)過(guò)程中的思路是先寫A終端除了LoRa數(shù)據(jù)接發(fā)部分的功能,再寫B(tài)終端的請(qǐng)求功能,然后A再根據(jù)B終端的請(qǐng)求,返回相應(yīng)的數(shù)據(jù),再進(jìn)?相應(yīng)的展?,寫完每個(gè)模塊時(shí),養(yǎng)成測(cè)試的好習(xí)慣,不要全部寫完再測(cè)試寫A終端?到的模塊和對(duì)應(yīng)引腳配置?概如下OLED模塊1PA8I2C3_SCL2PB4I2C3_SDAOutputOutput3PB5電源控制引腳,低電平有效Output溫度傳感器1PB1傳感器報(bào)警輸出信號(hào)AlertOutput2PB6傳感器I2C總線SCL信號(hào)Output3PB7傳感器I2C總線SDA信號(hào)OutputUSER鍵PC_14EXTI中斷,?于切換顯?界?USART2,波特率9600設(shè)置Asynchronous打勾NVIC的ENABLE繼電器K1--->PA0K2--->PA1LoRa模塊OutputOutput引腳配置在官?給的驅(qū)動(dòng)?件中都已經(jīng)配置好,?需??配置LPTIM1定時(shí)器使?定時(shí)器來(lái)定時(shí)獲取溫度傳感器的溫度和查詢LoRa的接收,分頻128配置完如同所?圖1引腳配置圖本終端?到了多個(gè)中斷,要注意優(yōu)先級(jí),這?設(shè)置的優(yōu)先級(jí)是:USER按鍵>串?接收>定時(shí)器1)需要?得到的變量定義2)外設(shè)初始化添加官?給的驅(qū)動(dòng)?件,在main函數(shù)中初始化。我因?yàn)樵诔跏蓟瘯r(shí),將LoRa模塊需要的三個(gè)初始化函數(shù)放在了兩個(gè)中斷開(kāi)啟的下?,可能導(dǎo)致了初始化不成功,后續(xù)?直?法接收到B終端的請(qǐng)求,卡了?天多的時(shí)間。這個(gè)地?需要注意?下。3)獲取溫度因?yàn)楣?只給了溫度傳感器的I2C驅(qū)動(dòng),獲取傳感器的值需要??去寫,所以抄了?下其他例程?的?件,如果暫時(shí)不會(huì)寫,?賽的時(shí)候可以背下來(lái),好像和實(shí)際溫度有點(diǎn)出?,sts.c得到溫度后,就完成第?個(gè)要求了,在OLED屏顯?出來(lái)通過(guò)PC14的中斷,來(lái)切換顯?的界?顯?最?最?溫度的界?到這?,完成了第?個(gè)要求4)串?收發(fā)數(shù)據(jù)在main函數(shù)初始化時(shí),已經(jīng)打開(kāi)了串?2的中斷接收,只需要重寫回調(diào)函數(shù)的功能即可。發(fā)送完要再次進(jìn)?接收模式數(shù)據(jù)的解析有點(diǎn)粗魯,但這是??的我想到的直?的?式了5)定時(shí)器的繼電器控制和溫度刷新在這個(gè)部分完成了很多功能,在刷新溫度的時(shí)候,判斷是否達(dá)到繼電器的吸合和斷開(kāi)的條件,就進(jìn)?對(duì)繼電器的控制,同時(shí)掃描?下是否有接收到終端B的請(qǐng)求到這,終端A除了LoRa收發(fā)數(shù)據(jù)部分,其他功能已經(jīng)完成,先去寫終端B寫B(tài)終端終端B只?到了鍵盤和OLED,開(kāi)發(fā)步驟和A終端?樣所以引腳配置OLED模塊1PA8I2C3_SCLOutput低電平有效2PB4I2C3_SDAOutput3PB5電源控制引腳,低電平有效Output外接按鍵模塊?到B1、B2、B3、B4,使?列1,列2,?1,?2列1:PB0Output列2:PB1Output?1:PB6input?2:PB7inputLoRa模塊引腳配置在官?給的驅(qū)動(dòng)?件中都已經(jīng)配置好,?需??配置,打開(kāi)EXTI10的中斷,?于LoRa的接收中斷1)需要?得到的變量定義2)外設(shè)初始化和終端A的差別不?3)按鍵掃描按鍵原理圖本題沒(méi)?到B3和B6鍵,所以PA8?不到,因?yàn)镻A8是OLED的I2C3_SCL線,低電平有效。所以按鍵掃描的思路為:PB1,PB0,PA8為Output模式,設(shè)置?對(duì)應(yīng)引腳為信號(hào)輸?,也就是PB6,PB7為Input模式,都設(shè)置為Pull-down。注意:PA8為OLED信號(hào)線,低電平有效,在按鍵讀取結(jié)束時(shí)應(yīng)及時(shí)設(shè)置成低電平。開(kāi)始掃描時(shí),先掃描第?列,將PB1設(shè)置為?電平,PA8為低電平(OLED屏需要),然后讀取?值,PB6,PB7的值,即當(dāng)PB6讀取值為1(?電平)時(shí),說(shuō)明按鍵B1被按下,同理,PB7讀取值為1時(shí),說(shuō)明按鍵B4被按下;讀取完第?列,開(kāi)始讀取第?列,要及時(shí)將PB1改為低電平,然后設(shè)置PB0為?電平,后續(xù)原理?樣;讀取第三列時(shí)是將PA8設(shè)置為?電平,結(jié)束后應(yīng)當(dāng)及時(shí)改為低電平,以?便OLED屏使?。在這??不到第三列,但是也可以掃描出來(lái),在處理時(shí)相應(yīng)的處理即可。key.c代碼如下到這?步,剩下的就是兩個(gè)終端之間的通信了終端A終端B之間的通信整個(gè)通信過(guò)程?概如下圖1)B向A發(fā)送請(qǐng)求根據(jù)掃描得到的按鍵,向A終端發(fā)送不同的請(qǐng)求(B終端代碼)2)A數(shù)據(jù)解析A收到B發(fā)來(lái)的請(qǐng)求后解析B的請(qǐng)求(A終端代碼)3)A向B返回?cái)?shù)據(jù)數(shù)據(jù)返回(A終端代碼)4)B處理接收到的數(shù)據(jù)寫EXTI中斷回調(diào)函數(shù)(B終端代碼)在main中的while(1)?就掃描按鍵和LoRa接收中斷標(biāo)志當(dāng)接收到數(shù)據(jù)時(shí),調(diào)?recv_service()根據(jù)不同的數(shù)據(jù)進(jìn)?不同的展?總結(jié)1.使?多個(gè)中斷時(shí)需要注意優(yōu)先級(jí),優(yōu)先級(jí)不對(duì)會(huì)導(dǎo)致部分功能?法實(shí)現(xiàn)2.在B終端接收數(shù)據(jù)的時(shí)候,?PA10的EXTI中斷,A中斷?定時(shí)器查詢3.在相同部分代碼復(fù)制時(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論