下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
實驗題目:實驗6—無線溫度檢測實驗實驗時間:2023.12.14實驗?zāi)康模簩W(xué)習(xí)TIZStack2007協(xié)議棧內(nèi)容,掌握CC2530模塊數(shù)據(jù)傳輸?shù)膶崿F(xiàn)過程。學(xué)習(xí)協(xié)議棧中關(guān)于串口的根本設(shè)置和操作。實驗原理及程序分析:系統(tǒng)流程圖協(xié)調(diào)器分立ZigBee無線網(wǎng)絡(luò),終端節(jié)點自動參加該網(wǎng)絡(luò)中,然后終端節(jié)點周期性的采集溫度數(shù)據(jù)并將其發(fā)送給協(xié)調(diào)器,協(xié)調(diào)器接收到溫度數(shù)據(jù)后,通過串口將其輸出到PC機。如下圖。關(guān)鍵代碼分析對于協(xié)調(diào)器而言,只需要將收集到的溫度數(shù)據(jù)通過串口發(fā)送到PC機即可;對于終端節(jié)點而言,需要周期性地采集溫度數(shù)據(jù),采集溫度數(shù)據(jù)可以通過讀取溫度傳感器的數(shù)據(jù)得到。溫度數(shù)據(jù)包結(jié)構(gòu)設(shè)計該數(shù)據(jù)包結(jié)構(gòu)體定義如下。typedefunionh{uint8TEMP[4];structRFRXBUF{unsignedcharHead;unsignedcharvalue[2];unsignedcharTail;}BUF;}TEMPRETURE;使用一個共用體來表示整個數(shù)據(jù)包,里面有兩個成員變量,一個是數(shù)組TEMP,該數(shù)組有4元素;另一個是結(jié)構(gòu)體,該結(jié)構(gòu)體具體實現(xiàn)了數(shù)據(jù)包的數(shù)據(jù)頭、溫度數(shù)據(jù)、數(shù)據(jù)尾。結(jié)構(gòu)體所占的存儲空間也是4個字節(jié)。協(xié)調(diào)器代碼:#include"OSAL.h"#include"AF.h"#include"ZDApp.h"#include"ZDObject.h"#include"ZDProfile.h"#include<string.h>#include"Coordinator.h"#include"DebugTrace.h"#if!defined(WIN32)#include"OnBoard.h"#endif#include"hal_led.h"#include"hal_lcd.h"#include"hal_key.h"#include"hal_uart.h"constcId_tGenericApp_ClusterList[GENERICAPP_MAX_CLUSTERS]={GENERICAPP_CLUSTERID\};constSimpleDescriptionFormat_tGenericApp_SimpleDesc={GENERICAPP_ENDPOINT,GENERICAPP_PROFID,GENERICAPP_DEVICEID,GENERICAPP_DEVICE_VERSION,GENERICAPP_FLAGS,GENERICAPP_MAX_CLUSTERS,(cId_t*)GenericApp_ClusterList,0,(cId_t*)NULL};endPointDesc_tGenericApp_epDesc;byteGenericApp_TaskID;byteGenericApp_TransID;unsignedcharuartbuf[128];voidGenericApp_MessageMSGCB(afIncomingMSGPacket_t*pckt);voidGenericApp_SendTheMessage(void);/*staticvoidrxCB(uint8port,uint8event);staticvoidrxCB(uint8port,uint8event){HalUARTRead(0,uartbuf,16);if(osal_memcmp(uartbuf,"wlwmaker",16)){HalUARTWrite(0,uartbuf,16);}}*/voidGenericApp_Init(bytetask_id){halUARTCfg_tuartConfig;GenericApp_TaskID=task_id;GenericApp_TransID=0;GenericApp_epDesc.endPoint=GENERICAPP_ENDPOINT;GenericApp_epDesc.task_id=&GenericApp_TaskID;GenericApp_epDesc.simpleDesc=(SimpleDescriptionFormat_t*)&GenericApp_SimpleDesc;GenericApp_epDesc.latencyReq=noLatencyReqs;afRegister(&GenericApp_epDesc);uartConfig.configured=TRUE;uartConfig.baudRate=HAL_UART_BR_115200;uartConfig.flowControl=FALSE;uartConfig.callBackFunc=NULL;HalUARTOpen(0,&uartConfig);}UINT16GenericApp_ProcessEvent(bytetadk_id,UINT16events){afIncomingMSGPacket_t*MSGpkt;if(events&SYS_EVENT_MSG){MSGpkt=(afIncomingMSGPacket_t*)osal_msg_receive(GenericApp_TaskID);while(MSGpkt){switch(MSGpkt->hdr.event){caseAF_INCOMING_MSG_CMD:GenericApp_MessageMSGCB(MSGpkt);break;default:break;}osal_msg_deallocate((uint8*)MSGpkt);MSGpkt=(afIncomingMSGPacket_t*)osal_msg_receive(GenericApp_TaskID);}return(events^SYS_EVENT_MSG);}return0;}voidGenericApp_MessageMSGCB(afIncomingMSGPacket_t*pkt){unsignedcharbuffer[2]={0x0A,0x0D};TEMPRETUREtempreture;switch(pkt->clusterId){caseGENERICAPP_CLUSTERID:osal_memcpy(&tempreture,pkt->cmd.Data,sizeof(tempreture));HalUARTWrite(0,(uint8*)&tempreture,sizeof(tempreture));HalUARTWrite(0,buffer,2);break;}}終端節(jié)點編程://讀取溫度int8readTemp(void){staticuint16reference_voltage;staticuint8bCalibrate=TRUE;uint16value;int8temp;ATEST=0x01;TR0|=0x01;ADCIF=0;ADCCON3=(HAL_ADC_REF_115V|HAL_ADC_DEC_256|HAL_ADC_CHN_TEMP);while(!ADCIF);ADCIF=0;value=ADCL;value|=((uint16)ADCH)<<8;value>>=4;if(bCalibrate){reference_voltage=value;bCalibrate=FALSE;}temp=22+((value-reference_voltage)/4);return22;}//終端節(jié)點事件處理與無線數(shù)據(jù)發(fā)送UINT16GenericApp_ProcessEvent(bytetadk_id,UINT16events){afIncomingMSGPacket_t*MSGpkt;if(events&SYS_EVENT_MSG){MSGpkt=(afIncomingMSGPacket_t*)osal_msg_receive(GenericApp_TaskID);while(MSGpkt){switch(MSGpkt->hdr.event){caseZDO_STATE_CHANGE:GenericApp_NwkState=(devStates_t)(MSGpkt->hdr.status);if(GenericApp_NwkState==DEV_END_DEVICE){//GenericApp_SendTheMessage();osal_set_event(GenericApp_TaskID,SEND_DATA_EVENT);}default:break;}osal_msg_deallocate((uint8*)MSGpkt);MSGpkt=(afIncomingMSGPacket_t*)osal_msg_receive(GenericApp_TaskID);}return(events^SYS_EVENT_MSG);}if(events&SEND_DATA_EVENT){GenericApp_SendTheMessage();osal_start_timerEx(GenericApp_TaskID,SEND_DATA_EVENT,1000);return(events^SEND_DATA_EVENT);}return0;}voidGenericApp_SendTheMessage(void){//unsignedchartheMessageData[10]="EndDevice";int8tvalue;TEMPRETUREtempreture;tempreture.BUF.Head='&';tvalue=readTemp();tempreture.BUF.value[0]=tvalue/10+'0';tempreture.BUF.value[1]=tvalue%10+'0';tempreture.BUF.Tail='C';afAddrType_tmy_DstAddr;my_DstAddr.addrMode=(afAddrMode_t)Addr16Bit;my_DstAddr.endPoint=GENERICAPP_ENDPOINT;my_DstAddr.addr.shortAddr=0x0000;AF_DataRequest(&my_DstAddr,&GenericApp_epDesc,GENERICAPP_CLUSTERID,sizeof(tempreture),(uint8*)&tempreture&GenericApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS);HalLedBlink(HAL_LED_2,0,50,500);}實驗步驟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 師恩難忘班主任的教誨寫人15篇
- 量子計算研發(fā)進展承諾函范文3篇
- 網(wǎng)絡(luò)與朋友的話題討論話題類作文(7篇)
- 陽光體育運動服務(wù)升級承諾書5篇
- 確保消費者權(quán)益的服務(wù)水準(zhǔn)保證承諾書(9篇)
- 醫(yī)院數(shù)據(jù)存儲制度規(guī)范
- 企業(yè)安全頭盔制度規(guī)范
- 關(guān)于規(guī)范銀行排班制度
- 嚴(yán)格規(guī)范現(xiàn)金管理制度
- 家政培訓(xùn)制度管理規(guī)范
- 2026年度醫(yī)保制度考試真題卷及答案
- 2026年1月浙江省高考(首考)英語試題(含答案)+聽力音頻+聽力材料
- 2026年貨物運輸合同標(biāo)準(zhǔn)模板
- 廣西壯族自治區(qū)南寧市2025-2026學(xué)年七年級上學(xué)期期末語文綜合試題
- 2024VADOD臨床實踐指南:耳鳴的管理解讀課件
- 2026年湖南鐵路科技職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及參考答案詳解一套
- 第一單元寫作:考慮目的和對象 教學(xué)課件
- (人教A版)高二數(shù)學(xué)下學(xué)期期末考點復(fù)習(xí)訓(xùn)練專題05 導(dǎo)數(shù)的計算與復(fù)合函數(shù)導(dǎo)數(shù)的計算(重難點突破+課時訓(xùn)練)(原卷版)
- 開放大學(xué)(電大)《農(nóng)村社會學(xué)》期末試題
- 2025年70歲老人考駕照三力測試題及答案
- 2023-2024學(xué)年六年級上學(xué)期南沙區(qū)數(shù)學(xué)期末考試試題(含答案)
評論
0/150
提交評論