微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > NwkAddrReq()函数使用浅谈

NwkAddrReq()函数使用浅谈

时间:10-02 整理:3721RD 点击:
留个帖子方便以后自己查找。前段时间编过关于调用ZDP_IEEEAddrReq()的串口发送父设备的扩展地址,当然就是经典的ZDP_IEEEAddrReq(0x0000,0,0,0)喽,后来也成功了。然后再这个API库里面(就在此函数定义的ZDProfile.c中),又看到该函数旁边有个函数叫ZDP_NwkAddrReq(A,B,C,D),大体就是ZDP_IEEEAddrReq(a,B,C,D)的反推看起来。然后我就试着照猫画虎来用已知设备的扩展地址(MAC)来得到,然后我就改了改:

注册NWK_addr_rsp;

使用ZDP_NwkAddrReq(A,B,C,D),A的输入是重点,函数描述指定是一个指针,而IEEE地址高达64位,所以做了一个数组指针MAC_data(不是指针数组..)

正序排列的IEEE地址

触动事件ZDO_CB_MSG后进入ZDOMsg中

事件ZDO_CB_MSG的处理函数(向串口发送数据)

当我轻而易举的完成上述步骤后,实验结果一如既往的没有让我失望,串口接收区干干净净,什么也没有。然后找问题,通过万能的LED小灯,发现程序是无法进入“ZDOMsg的处理函数”,就是"事件ZDO_CB_MSG"好像根本就没有被触发,即本节点根本没有收到正确远程节点的返回信息下图(两节点交流图)




后来问题锁定在ZDP_NwkAddrReq( MAC_data,0,0,0 ) ; 后来一百度,查论坛社区,都有讲该函数如何使用,通篇一律翻译了下TI里面的函数说明...
后来将MAC_data数据进行由低位到高位排列即:
uint8 MAC_data[8]={0xec,0x52,0xae,0x04,0x00,0x4b,0x12,0x00}; //由低位到高位
//uint8 MAC_data[8]={0x00,0x12,0x4b,0x00,0x04,0xae,0x52,0xec};//原先的,实际IEEE地址为 0x 00 12 4b 00 04 ae 52 ec

再尝试发现成功了,灯NM闪起来了,串口开始发送网络地址信息(意味着"事件ZDO_CB_MSG" 得到指派);

奇怪之处:下次再考程序,发现时常又无法进入"事件ZDO_CB_MSG"

图片误删,见下:





LZ我改了一下 也还不行啊!没发生响应哦!

case AF_DATA_CONFIRM_CMD:
和远程节点这里也有一定关系吧

您好,请问能否分享一下关于绑定应用的一些经验?

讲解真详细,赞!

SORRY,大四后来一直忙着各类杂事,没再上过论坛。。。关于绑定我的经验还不够足。推荐你看看其他技术帖,或者问问论坛的水哥wateras1,他蛮懂得理解挺深,也许可以帮助你。

关于 case AF_DATA_CONFIRM_CMD,请说说你的意见。

ZDO的消息发送,AF_DATA_CONFIRM_CMD没啥用。

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

网站地图

Top