微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 就是短地址发送改为了长地址发送,数据就发不出了

就是短地址发送改为了长地址发送,数据就发不出了

时间:10-02 整理:3721RD 点击:

就是短地址发送改为了长地址发送,数据就发不出了,具体代码见下面:
// Use short address
dstAddr.addr.shortAddr = destination;//destination==0就是协调器的地址;
 dstAddr.addrMode = afAddr16Bit;
改成下面代码变为长地址发送,却发不出了。
 uint8 ieee[Z_EXTADDR_LEN] ={0x00,0x12,0x4b,0x00,0x05,0x52,0x7b,0x28};
dstAddr.addrMode = afAddr64Bit;
osal_memcopy(dstAddr.addr.extAddr,ieee,8);
注osal_memcopy为
void osal_memcopy (void *dst,const void GENERIC *src,unsigned int len)
{
uint8 *pDst;
const uint8 GENERIC *pSrc;
pSrc=src;
pDst=dst;
while(len--)
{
*pDst++=*pSrc++;
}

}

长地址模式发送,在底层页是通过长地址找到短地址,然后通过短地址把数据发送出去,也就是说ZIgBee网络里面,真正在空中通信的数据报文永远是短地址。 

有可能在底层没有找到对应的短地址,直接丢弃了

VV你好!

    现在我的设备A是一个EndDevice,从协调器那里收到了另外一个设备B的IEEE地址,设备A向设备B发送数据不能直接将地址模式写成Addr64bit,然后将ext addr里写上IEEE地址,这样发送不成功!就像您说的有可能被底层丢弃了,考虑被丢弃了我的这个应用该怎么做?

麻烦指导下!谢谢

   

little endian ?

长地址是过不了路由的,点对点可以。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top