这个问题 我也遇到过。
我的做法是:
ZDApp_ProcessNetworkJoin()函数中 这段红色的代码 屏蔽
else if(devStartMode == MODE_REJOIN)
{
if ( ZSTACK_END_DEVICE_BUILD )
{
devStartMode = MODE_REJOIN;
_tmpRejoinState = true;
_NIB.nwkState = NWK_INIT;
if( prevDevState == DEV_NWK_SEC_REJOIN_CURR_CHANNEL )
{
runtimeChannel = MAX_CHANNELS_24GHZ;
prevDevState = DEV_NWK_SEC_REJOIN_ALL_CHANNEL ;
}
else if ( prevDevState == DEV_NWK_SEC_REJOIN_ALL_CHANNEL)
{
// Set the flag that will ask the device to do trust center network layer rejoin.
//_NIB.nwkKeyLoaded = FALSE;
//ZDApp_ResetNwkKey(); // Clear up the old network key.
#ifdef DEBUG_REJOIN
HalUARTWrite(0,"Don't clearing network key\n", sizeof("Don't clearing network key\n"));
#endif
runtimeChannel = (uint32) (1L << _NIB.nwkLogicalChannel);
prevDevState = DEV_NWK_TC_REJOIN_CURR_CHANNEL ;
}
应该就可以了