芯片CC2530,协议栈 zstack 3.0.2 。 我在程序ZCL初始化的时候添加进入低功耗的功能,程序如下:
#if defined ( POWER_SAVING )
osal_pwrmgr_device( PWRMGR_BATTERY );
#endif
我在程序中通过led闪烁表示扫网时间:HalLedBlink( HAL_LED_1, 255, 55, 250);
程序在启动以后的5-6秒就直接进入了低功耗,led闪烁出现异常(正常应该闪烁30秒停止闪烁,现在现象是一开始正常闪烁,几秒以后变成忽闪忽不闪,而且每次闪烁时间极短),不确定有没有影响到扫网。
程序中我有启动一个30秒以后停止扫网的任务,貌似任务没有影响到,还是能进入,但是按键之类的工作都工作异常。
因为我现在是吧程序从zstack2.5.1移植到3.0,出现了这个现象,求解,谢谢!!!
user5351040:
而且我初始化的时候调用bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING);进行加网绑定,抓包发现只发了一次beacon request,这是正常的吗
user5351040:
回复 Viki Shi:
不好意思,我好像打不开你发的那个链接
YiKai Chen:
到halSleep()里把下面的碼去掉試試
#ifdef HAL_SLEEP_DEBUG_LED
HAL_TURN_OFF_LED3();
#else
/* use this to turn LEDs off during sleep */
HalLedEnterSleep();
#endif
user5351040:
回复 YiKai Chen:
您好,我删掉了也不行。
我发现之前zstack版本我在扫网时候 if (halSleepPconValue != 0 && MAC_PwrOffReq(MAC_PWR_SLEEP_DEEP) == MAC_SUCCESS)这个判断不会立刻进去,扫网期间MAC_PwrOffReq返回的是0xE2,但是我现在上电5-6秒就返回了MAC_SUCCESS
user5351040:
回复 YiKai Chen:
由于新版本的入网绑定由bdb控制,我在bdb初始化添加bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING);来扫网绑定,抓包的时候发现只有一次beacon request(没有进入低功耗也是如此),目前现象应该是没有继续扫网导致进入低功耗,请问bdb_StartCommissioning是需要重复调用的吗?
YiKai Chen:
回复 user5351040:
調用bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING); 後應該會持續180秒、不需重覆調用
user5351040:
回复 YiKai Chen:
我这边抓包显示只有一次扫网,是不是配置上有什么问题
user5351040:
回复 YiKai Chen:
好的,谢谢