FR8008A休眠后无法唤醒
-
目的:RTC设置定时A值为1s,周期性工作后休眠
程序结构:
main
{
RTCinit();
while(1)
{
1、system_sleep_enable();
2、co_printf("sleep start\r\n");
3、while(!ble_stack_sleep_check());
4、co_printf("enter sleep allowed\r\n");
5、ble_stack_enter_sleep();
6、co_printf("ble_stack_enter_sleep\r\n");
}
}
目前情况:在不执行休眠时,RTC周期工作正常,在执行休眠后,RTC无法进入中断(中断打印调试信息);然后在执行休眠时,程序可以运行到第5步,且可以看出功耗有降低,判断芯片应该进入了休眠,进入了user_entry_before_sleep_imp函数,但是这种情况,RTC无法唤醒,系统会被看门狗重启,user_entry_after_sleep_imp函数以及程序的第六步无法运行到。
目前个人判断下来应该是进入了休眠,但没有被RTC唤醒,但是就不清楚到底是哪里配置得不对,或者流程思路有问题,发帖请教。
-
此回复已被删除!
-
你这个写法有问题 这个代码一直进入sleep
-
// pmu_port_wakeup_func_set(GPIO_PORT_D, (1<<GPIO_BIT_5));
pmu_port_wakeup_func_set(GPIO_PORT_D, (1<<GPIO_BIT_6));
NVIC_EnableIRQ(PMU_IRQn);
#if 1
co_delay_100us(10*2000);
system_sleep_enable();
// system_power_off();
#else
system_sleep_disable();#endif