ZigBee TI ZStack CC2530 4.13 单播通信02-64位地址模式

本文介绍ZigBee通信中64位地址模式的单播发送函数实现及其验证过程。通过具体实例展示了如何利用64位MAC地址进行设备控制,并附带了关键代码片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【配套源码文档软件硬件等资源,入口见文末

上一节中我们详细讲述了单播通信的第一种方式——16位地址模式。本节中,我们将讲述单播通信的第二种方式——64位地址模式。

(仅描述与16位地址方式不同之处)

上一节中实现了对16位短地址已知的ZigBee协调器(固定为0x0000)单播控制功能,即无线点灯等;下面我们来实现对16位短地址未知、但64位MAC地址已知的ZigBee设备的单播控制功能;这边我们为了获得目标设备的64位MAC地址,可以将目标设备用仿真下载器连接到电脑,在电脑端Flash Programmer软件中点击“Read IEEE”直接获取,如下图所示:

1、64位地址单播发送函数,声明及定义如下:

......
static void ProjectApp_SendUnicast64( void );
......
static void ProjectApp_SendUnicast64( void )
{
  char theMessageData[ ] = "Unicast data 64\r\n";
  uint8 DestMac[8]={0xA1,0XBD,0X38,0X12,0X00,0X4B,0X12,0X00};//00 12 4B 00 12 38 BD A1

  ProjectApp_DstAddr.addrMode       = (afAddrMode_t)Addr64Bit;
  ProjectApp_DstAddr.endPoint       = PROJECTAPP_ENDPOINT;
  //ProjectApp_DstAddr.addr.shortAddr = NWK_PAN_COORD_ADDR;//NWK_BROADCAST_SHORTADDR_DEVALL;  
  memcpy(ProjectApp_DstAddr.addr.extAddr,DestMac,8);

  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_2 )
  {
//    HalLedSet(HAL_LED_2,HAL_LED_MODE_TOGGLE);
    ProjectApp_SendUnicast64();
  }
  ......
}
(2)实验现象

两个ZigBee设备分别上电后,会发现,无论按下哪个ZigBee设备上的KEY2,路由器(或终端设备)上的LED1状态都会取反,同时协调器的串口每次都会打印出“Unicast data 64”;

【配套源码文档软件硬件等资源,入口见文末​​​​​​​

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拿破仑940911

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值