清除NV区代码如下:
if(zgWriteStartupOptions( ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE )==ZSUCCESS){
HalUARTWrite(0,"clear NV success",16);
}
执行完上述代码,再执行修改PANID和信道代码失效。
修改PANID代码如下:
mypanid=(uart_rdata[1]<<8) + uart_rdata[2];
osal_memcpy(&_NIB.nwkPanId,&mypanid,sizeof(uint16));
NLME_UpdateNV(0x01);
osal_nv_write(ZCD_NV_PANID, 0, osal_nv_item_len( ZCD_NV_PANID ), &zgConfigPANID);
osal_start_timerEx( SampleApp_TaskID,SAMPLEAPP_RESET_EVT,1000 );
修改信道代码如下:
mychannel=uart_rdata[1];
if(mychannel<0x0B||mychannel>0x1A){
HalUARTWrite(0,"wrong channel",13);
}
else{
_NIB.nwkLogicalChannel = mychannel;
NLME_UpdateNV(0x01);
osal_start_timerEx( SampleApp_TaskID,
SAMPLEAPP_RESET_EVT,
1000 );
}