微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > CC2530Zigbee模块如何知道设备联网成功的?

CC2530Zigbee模块如何知道设备联网成功的?

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

我用ZIGBEE模块路由器连接协调器,当路由器连接上协调器后,是从哪里知道联网成功的?又是从哪里将联网指示灯端口直为高电平的?谢谢

路由器的启动过程代码按如下方式运行(预编译HOLD_AUTO_START)

main()->osal_init_system()->osalInitTasks() 

->ZDApp_Init() 

->ZDOInitDevice( ZDO_INIT_HOLD_NWK_START ) 

->ZDApp_NetworkInit() 

->触发ZDAppTaskID的ZDO_NETWORK_INIT 

->ZDO_StartDevice() 

->NLME_NetworkDiscoveryRequest() 

->网络发现成功

ZDO_NetworkDiscoveryConfirmCB() 

->触发ZDAppTaskID的ZDO_NWK_DISC_CNF 

->NLME_JoinRequest() 

->网络加入成功 ZDO_JoinConfirmCB 

->ZDApp_SendMsg() 

->触发ZDAppTaskID的ZDO_NWK_JOIN_IND 

->ZDApp_ProcessNetworkJoin() 

->osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT ) 

->ZDO_UpdateNwkStatus()

.......................................................

请问您现在的联网指示灯是哪个IO口?您可以在您现在的程序中查找该IO口的相关代码。

Susan Yang的回答很专业,但是忽略了一个问题。

提问者的积分只有180分,可以看出他应该是刚来TI论坛不久,从他的问的问题的标题来看,他问的是CC2530模块,而非协议栈,说明他基本上对协议栈不了解,或者就是买的别人的模块。此外,他说的是联网,而不是大家都说的组网,可以基本确定,他是一个全新的新手。

所以,正确的答案是:全局搜索:“case ZDO_STATE_CHANGE:”如下:

case ZDO_STATE_CHANGE:
GenericApp_NwkState = (devStates_t)(MSGpkt->hdr.status);
if ( (GenericApp_NwkState == DEV_ZB_COORD) ||
(GenericApp_NwkState == DEV_ROUTER) ||
(GenericApp_NwkState == DEV_END_DEVICE) )
{
// do something
}

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

网站地图

Top