ZigBee TI ZStack CC2530 4.14 廣播通訊
阿新 • • 發佈:2019-02-12
(配套原始碼、軟體、開發板等資源,可移步部落格同名QQ群:拿破崙940911)
前面兩節中,我們詳細介紹了ZigBee的第一種無線通訊方式——單播;本節中,我們將介紹ZigBee的第二種無線通訊方式——廣播。
(僅描述與單播通訊不同之處)
本節中實現的功能為:三個以上ZigBee裝置組網成功後,網路中任意一個裝置按下KEY1,網路中其餘ZigBee裝置上的LED1狀態均會取反,同時串列埠也會打印出接收到的廣播資料。
1、廣播發送函式,宣告及定義如下:
2、實驗驗證...... static void ProjectApp_SendBroadcast( void ); ......
相信這個函式的定義大家一眼也能看明白~static void ProjectApp_SendBroadcast( void ) { char theMessageData[ ] = "Broadcast data\r\n"; ProjectApp_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast; ProjectApp_DstAddr.endPoint = PROJECTAPP_ENDPOINT; ProjectApp_DstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVALL;//NWK_PAN_COORD_ADDR; AF_DataRequest( &ProjectApp_DstAddr, &ProjectApp_epDesc, PROJECTAPP_CLUSTERID, (byte)osal_strlen( theMessageData ) + 1, (byte *)&theMessageData, &ProjectApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ); }
(1)呼叫廣播發送函式
static void ProjectApp_HandleKeys( uint8 shift, uint8 keys ) { ...... if ( keys & HAL_KEY_SW_1 ) { // HalLedSet(HAL_LED_1,HAL_LED_MODE_TOGGLE); // ProjectApp_SendUnicast16(); ProjectApp_SendBroadcast(); } ...... }
(2)編譯下載
(3)實驗現象在IAR左側的Workspace中,一個ZigBee裝置選擇CoordinatorEB編譯下載,其餘所有的ZigBee裝置任意選擇RouterEB或EndDeviceEB編譯下載,如下圖所示進行選擇;
所有的ZigBee裝置上電後,會發現,無論按下哪個ZigBee裝置上的KEY1,其餘所有的ZigBee裝置上的LED1狀態都會取反,同時協調器的串列埠每次都會打印出“Broadcast data”;
(配套原始碼、軟體、開發板等資源,可移步部落格同名QQ群:拿破崙940911)