开启 POWER_SAVING 后,由于需要用到定时器,所以做了以下工作:
1.收到协调器发来的消息后调用了 (void)osal_pwrmgr_task_state(Hal_TaskID, PWRMGR_HOLD);
2.开启定时器进行相关工作
3.使用完定时器后调用了 (void)osal_pwrmgr_task_state(Hal_TaskID, PWRMGR_CONSERVE);
4.然后调用AF_DataRequest() 发送消息给协调器
然后程序就卡死在 ac_sleep.c 文件中的macSleepWakeUp() 中的 MAC_RADIO_TIMER_WAKE_UP();
请问这种情况怎么解决啊?
谢谢
Viki Shi:
排查下晶振部分,用的是internal还是external?
yong zhou3:
回复 Viki Shi:
添加了 OSC32K_CRYSTAL_INSTALLED=FALES 的
Viki Shi:
回复 yong zhou3:
用的哪颗芯片?
yong zhou3:
回复 Viki Shi:
CC2530,只要没有调用使用定时器那个函数,消息的发送就是正常的,调用了后发送消息就卡死在MAC_RADIO_TIMER_WAKE_UP()了
yong zhou3:
回复 Viki Shi:
CC2530
Viki Shi:
回复 yong zhou3:
查下内部晶振是否起振
yong zhou3:
回复 Viki Shi:
设备只要没有调用使用了定时器那个函数就不会卡死在 MAC_RADIO_TIMER_WAKE_UP() ,并且定时发送的心跳也是正常的,但是只要调用了那个函数,就会卡死在MAC_RADIO_TIMER_WAKE_UP()