如何在STOP模式(STOP0,STOP1或者STOP2)下保持TIM(例如:TIM2)唤醒?
[C] 纯文本查看 复制代码 void EnterStop0ModeRTC(void)
{
// printf("START STOP0 RTC\r\n");
__HAL_RCC_PWR_CLK_ENABLE();
HAL_RCCEx_WakeUpStopCLKConfig(RCC_STOP_WAKEUPCLOCK_MSI);
__HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG();
HAL_SuspendTick();
__HAL_RCC_PWR_CLK_ENABLE();
RCC->APB1SMENR1 = 0x01;
// HAL_DBGMCU_EnableDBGStopMode();
HAL_PWREx_EnterSTOP0Mode(PWR_STOPENTRY_WFI);
}
void ExitStop0ModeRTC(void)
{
SystemClock_Config();
HAL_ResumeTick();
SCB->SCR &= ~SCB_SCR_SLEEPONEXIT_Msk;
// printf("In the EXTI to wake up!\r\n");
}
我这样写好像TIM2也是停止工作的呀,有其他方法吗?还有个问题,就是在STOP模式中不能使用printf吗?我在进入STOP和退出STOP模式中都写一个printf,只会打印进入stop时的printf,而退出的不会打印,但是在调试的时候,断点是会进入退出函数中去的,调试时经过退出函数的printf只能打印一个S,后面的都不打印了,这是什么问题呢?
|