ZigBee CC2530 Z-Stack 20 广播通信

来源:互联网 发布:网络机柜价格 编辑:程序博客网 时间:2024/05/16 09:23

(本博客ZigBee分支下所有相关实验代码资料的统一下载链接http://pan.baidu.com/s/1gfmtKwN

PS:任何问题欢迎在下方评论区留言,12小时内回复~

前面两节中,我们详细介绍了ZigBee的第一种无线通信方式——单播;本节中,我们将介绍ZigBee的第二种无线通信方式——广播


(仅描述与单播通信不同之处)

本节中实现的功能为:三个以上ZigBee设备组网成功后,网络中任意一个设备按下KEY1,网络中其余ZigBee设备上的LED1状态均会取反,同时串口也会打印出接收到的广播数据。

1、广播发送函数,声明及定义如下:

......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                );}
相信这个函数的定义大家一眼也能看明白~
2、实验验证

(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)编译下载

在IAR左侧的Workspace中,一个ZigBee设备选择CoordinatorEB编译下载,其余所有的ZigBee设备任意选择RouterEB或EndDeviceEB编译下载,如下图所示进行选择;

(3)实验现象

所有的ZigBee设备上电后,会发现,无论按下哪个ZigBee设备上的KEY1,其余所有的ZigBee设备上的LED1状态都会取反,同时协调器的串口每次都会打印出“Broadcast data”;


OK,bingo!

PS:任何问题欢迎在下方评论区留言,12小时内回复~

(本博客ZigBee分支下所有相关实验代码资料的统一下载链接http://pan.baidu.com/s/1gfmtKwN