国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

11 單播初體驗

2019-11-08 03:20:02
字體:
來源:轉載
供稿:網友

1、剛開始,我們確實需要借助官方模板,添加簡單的代碼,做出通信基本收發實驗,建立感性的認識。

2、然后,在官方代碼基本實驗基礎上,了解相關的概念,掌握通信過程中原理,結合自己的理解,自己動手做一個個性化實驗,驗證我們的理解。

單播

在Zigbee網絡里,模塊之間要進行通信,發射模塊非常明確知道接收模塊的網絡地址,以這個地址發送數據給接收模塊,叫單播。

Zigbee模塊的地址特點:

模塊在入網的時候,父節點隨機分配網絡地址給子節點。但是協調器模塊在網絡里的地址永遠是0x0000.

在同一個工程里面通過選項卡控制不同的文件的編譯細節!復制SimonAPP.c文件作為Enddevice.c文件,然后選擇不同選項卡,通過文件的option設置,利用Exclude from build選項設置某個文件在某個選項卡下是否參與編譯!??!

發送單個字符

發送模塊—終端節點

在Enddevice.c文件里的SimonApp_MY_EVT事件處理中按鈕1 按下的相關處理代碼:

if ( events & SimonApp_MY_EVT ) { if(0==P1_1) {//按鈕3按下 LS164_BYTE(3); char theMessageData[] ={8}; SimonApp_DstAddr.addrMode = (afAddrMode_t)Addr16Bit; SimonApp_DstAddr.addr.shortAddr = 0x0000; // Take the first endpoint, Can be changed to search through endpoints SimonApp_DstAddr.endPoint =SimonApp_ENDPOINT ; AF_DataRequest( &SimonApp_DstAddr, &SimonApp_epDesc, SimonApp_CLUSTERID, 1,//(byte)osal_strlen( theMessageData ) + 1, (byte *)&theMessageData, &SimonApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ); P1SEL &=0Xfe;// 翻轉LED P1DIR |=0X01; P1_0 ^=1; } if(0==P2_0) {//按鈕4按下 LS164_BYTE(4); } if(0==P0_5) {//按鈕5按下 LS164_BYTE(5); } return (events ^ SimonApp_MY_EVT); }

接收模塊—協調器

接收的大概過程是,當終端模塊發送數據時候,協調器模塊底層任務拿到這個無線數據,給我們應用層任務發送一個AF_INCOMING_MSG_CMD在消息處理里,我們把有用數據拿出來在數碼管上顯示。

SimonAPP.c里面:

void SimonApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ){ switch ( pkt->clusterId ) { case SimonApp_CLUSTERID: // "the" message#if defined( LCD_SUPPORTED ) HalLcdWriteScreen( (char*)pkt->cmd.Data, "rcvd" );#elif defined( WIN32 ) WPRINTSTR( pkt->cmd.Data );#endif LS164_BYTE(pkt->cmd.Data[0]); break; }}

發送字符串

發送模塊

在Enddevice.c文件里的SimonApp_MY_EVT事件處理中按鈕1 按下的相關處理代碼:

if ( events & SimonApp_MY_EVT ) { if(0==P1_1) {//按鈕3按下 LS164_BYTE(3); char theMessageData[] ="Hello Simon"; SimonApp_DstAddr.addrMode = (afAddrMode_t)Addr16Bit; SimonApp_DstAddr.addr.shortAddr = 0x0000; // Take the first endpoint, Can be changed to search through endpoints SimonApp_DstAddr.endPoint =SimonApp_ENDPOINT ; AF_DataRequest( &SimonApp_DstAddr, &SimonApp_epDesc, SimonApp_CLUSTERID, (byte)osal_strlen( theMessageData ) + 1, (byte *)&theMessageData, &SimonApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ); P1SEL &=0Xfe;// 翻轉LED P1DIR |=0X01; P1_0 ^=1; } if(0==P2_0) {//按鈕4按下 LS164_BYTE(4); } if(0==P0_5) {//按鈕5按下 LS164_BYTE(5); } return (events ^ SimonApp_MY_EVT); }

接收模塊

1.因為要接收字符串,移植串口模塊化文件,添加UART.C UART.h頭文件到 工程源文件目錄?。?!

2.在ZMain.c文件的main 靠近模塊void InitUart();初始化串口!??!

3.取消TI默認對串口的配置,在main函數找到 HalDriverInit函數,通過該函數修該宏定義: 把宏#define HAL_UART FALSE

4.在ZMain,c添加UART.h頭文件初始化算完成了

5.在SimonApp_MessageMSGCB函數中添加: Uart_Send_String(pkt->cmd.Data,pkt->cmd.DataLength); 記得在SDApp.c文件添加UART.h頭文件

這里寫圖片描述


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 小金县| 台中县| 高台县| 东莞市| 长春市| 泽州县| 潼南县| 阳山县| 固原市| 岢岚县| 吴江市| 湛江市| 汨罗市| 泸定县| 广丰县| 乌审旗| 青浦区| 河间市| 梁河县| 安溪县| 普洱| 信阳市| 浦江县| 宁强县| 平阳县| 襄汾县| 额济纳旗| 富阳市| 邯郸市| 抚松县| 延吉市| 海门市| 嘉黎县| 雷波县| 老河口市| 昌邑市| 河池市| 临安市| 桦川县| 松溪县| 赣榆县|