知識(shí)拓展無線串口通信_(tái)第1頁
知識(shí)拓展無線串口通信_(tái)第2頁
知識(shí)拓展無線串口通信_(tái)第3頁
知識(shí)拓展無線串口通信_(tái)第4頁
知識(shí)拓展無線串口通信_(tái)第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

技能操作實(shí)務(wù)模塊四:智慧商超應(yīng)用軟件開發(fā)*TRANSITIONPAGE過渡頁無線串口通信本章簡介1、basicRF串口介紹2、實(shí)驗(yàn)3、拓展題1、basicRF串口介紹串口介紹?串口就是RS232接口串口重要性?1、basicRF串口介紹如何通過basicRF操作的串口?串口數(shù)據(jù)接收:

通過調(diào)用halUartRxLen()函數(shù)來判斷是否有數(shù)據(jù),調(diào)用halUartRead()來接收數(shù)據(jù),并返回接收到的數(shù)據(jù)長度。串口數(shù)據(jù)發(fā)送:

通過創(chuàng)建一個(gè)buffer,把數(shù)據(jù)放入其中,然后調(diào)用halUartWrite()函數(shù)發(fā)送數(shù)據(jù)。1、接收串口數(shù)據(jù)len=RecvUartData(); //通過調(diào)用函數(shù)獲取數(shù)據(jù)if(len>0) //判斷是否收到數(shù)據(jù){halLedToggle(3);//收到數(shù)據(jù)是,綠燈取反2、把串口數(shù)據(jù)通過zigbee發(fā)送出去basicRfSendPacket(SEND_ADDR,uRxData,len); //將接收的數(shù)據(jù)發(fā)送出去

}串口數(shù)據(jù)接收:1、basicRF介紹如何通過basicRF操作的串口?1、判斷是否接收到信號(hào)if(basicRfPacketIsReady())//查詢有沒收到無線信號(hào){halLedToggle(4); //紅燈取反,無線接收指示2、接收無線數(shù)據(jù)len=basicRfReceive(pRxData,MAX_RECV_BUF_LEN,NULL);3、接收到的無線發(fā)送到串口數(shù)halUartWrite(pRxData,len);}串口數(shù)據(jù)接收:

通過調(diào)用RecvUartDate()函數(shù)來接收數(shù)據(jù),并以數(shù)據(jù)長度來判斷是否有收到數(shù)據(jù)。串口數(shù)據(jù)發(fā)送:

通過創(chuàng)建一個(gè)buffer,把數(shù)據(jù)放入其中,然后調(diào)用halUartWrite()函數(shù)發(fā)送數(shù)據(jù)。2、實(shí)驗(yàn)用2個(gè)ZigBee模塊,將2個(gè)zigbee分別和PC機(jī)相連,打開串口調(diào)試工具,實(shí)現(xiàn)2個(gè)zigbee互相通信。設(shè)置波特率38400bps。實(shí)驗(yàn)內(nèi)容:2、實(shí)驗(yàn)實(shí)驗(yàn)內(nèi)容:2、實(shí)驗(yàn)第一步,新建工程和程序文件1、復(fù)制庫文件。將CC2530_lib文件夾復(fù)制到該任務(wù)的工程文件夾內(nèi),即“D:\zigbee\任務(wù)2.2無線串口通信”內(nèi)(可以放在其它盤內(nèi))。并在該工程文件夾內(nèi)新建一個(gè)Project文件夾,用于存放工程文件。2、新建工程。具體方法參照實(shí)訓(xùn)1。并在工程中新建App、basicrf、board(板)、common(常見的)、utils(實(shí)用工具)等5個(gè)組,把各文件夾中的“xx.c”文件添加到對(duì)應(yīng)的文件夾中。3、新建程序文件。新源程序文件,將其命名為uartRF.c,保存在D:\zigbee\任務(wù)2.2無線串口通信\Project文件夾中。并將該文件添加到工程中的App文件夾中。實(shí)驗(yàn)步驟:2、實(shí)驗(yàn)實(shí)驗(yàn)環(huán)境配置:注意:$PROJ_DIR$\表示你當(dāng)前工作的workspace的目錄。..\表示對(duì)應(yīng)目錄的上一層。打開工程Options對(duì)話框,選擇“C/C++Compiler”,選擇“Preproce(預(yù)處理器)”選項(xiàng)卡,并在“additionalincludedirectories(附加包括目錄):”中輸入頭文件的路徑,然后點(diǎn)擊【OK】。第二步,添加頭文件。2、實(shí)驗(yàn)第三步,關(guān)鍵代碼講解。#include"hal_defs.h"http://通用定義,uint8、uint16用到該頭文件#include"basic_rf.h"http://basicRfCfg_t使用#include"hal_led.h"http://使用到led的相關(guān)操作#include"hal_uart.h"http://需要用到串口函數(shù)#include"hal_cc8051.h"http://IO口的定義使用#include"hal_int.h"http://中斷函數(shù)庫定義,這里沒用到#include"hal_mcu.h"http://cpu初始化使用,如工作頻率,延時(shí)等#include"hal_board.h"http://模塊板的相關(guān)設(shè)置(如led燈,按鍵等等)#include"hal_rf.h"http://無線函數(shù)庫定義,這里沒用到#include<stdio.h>//標(biāo)準(zhǔn)輸入輸出函數(shù)時(shí),如printf、scanf,這里沒用到#include<string.h>//字符串操作使用,這里沒用到#include<stdarg.h>//主要目的為讓函數(shù)能夠接收可變參數(shù),這里沒用到1、頭文件,平時(shí)常用的一些頭文件這4個(gè)頭文件本實(shí)驗(yàn)必須添加,其它可以不用添加2、實(shí)驗(yàn)第三步,關(guān)鍵代碼講解。uint16RecvUartData(void){uint16r_UartLen=0;uint8r_UartBuf[128];//用于存放數(shù)據(jù)

uRxlen=0;r_UartLen=halUartRxLen();//返回串口接收緩沖區(qū)中的字節(jié)數(shù)。

while(r_UartLen>0)//如果緩沖區(qū)中有數(shù)據(jù)

{r_UartLen=halUartRead(r_UartBuf,sizeof(r_UartBuf));//讀取串口數(shù)據(jù),

MyByteCopy(uRxData,uRxlen,r_UartBuf,0,r_UartLen);uRxlen+=r_UartLen;halMcuWaitMs(5);//非常重要,串口連續(xù)讀取數(shù)據(jù)時(shí)需有一定的間隔

r_UartLen=halUartRxLen();}returnuRxlen;}2、讀取串口數(shù)據(jù)2、實(shí)驗(yàn)第三步,關(guān)鍵代碼講解。voidMyByteCopy(uint8*dst,intdststart,uint8*src,intsrcstart,intlen){inti; //定義一個(gè)變量for(i=0;i<len;i++)//循環(huán){*(dst+dststart+i)=*(src+srcstart+i);//將原地址中的數(shù)復(fù)制到目的地址中//dst[dststart+i]=src[srcstart+i];//上述代碼這樣寫也可以}}3、數(shù)據(jù)復(fù)制,將原地址中的數(shù)據(jù)復(fù)制到目的地址中2、實(shí)驗(yàn)開始實(shí)驗(yàn)。。。。。。3、拓展題拓展題1兩個(gè)zigbee互相通信,按下1號(hào)zigbee的按鍵SW1時(shí),2號(hào)zigbee的燈全部亮,同時(shí)從串口輸出一串?dāng)?shù)據(jù)“zigbee2”。1、設(shè)時(shí)鐘為32MHz(無線發(fā)送需要32MHz的頻率)

CLKCONCMD&=0X80;2、等待時(shí)鐘32MHz生效

clkconcmd=CLKCONCMD; do { clkconsta=CLKCONSTA;

溫馨提示

  • 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. 人人文庫網(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)論