停机模式RTC定时唤醒有问题

2019-07-20 07:06发布


采用原子的例程如下:
RTC_Init();                     //初始化RTC
RTC_Set_WakeUp(RTC_WAKEUPCLOCK_CK_SPRE_16BITS,30); //配置WAKE UP中断,30秒钟唤醒一次  
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);  //进入停机模式
采用以上例程可以30秒唤醒一次!

我的问题如下:
我想每一次进入停机模式时开始计时30秒后唤醒,正常工作时停止RTC计时。
我使用以下例程时只有第一次可以唤醒,之后就再也唤醒不了。
RTC_Init();                     //初始化RTC
RTC_Set_WakeUp(RTC_WAKEUPCLOCK_CK_SPRE_16BITS,30); //配置WAKE UP中断,30秒钟唤醒一次  
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);  //进入停机模式

__HAL_RCC_RTC_DISABLE();//RTC时钟禁止

有哪位可以告知我一下,要如何设置,在下感激不尽!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-20 11:27
帮顶
kbq1950361006
2楼-- · 2019-07-20 15:41
改成这样试一试[mw_shl_code=c,true]
RTC_Init();                     //初始化RTC          
EXTI->PR=0XFFFFF;
RTC_Set_WakeUp(RTC_WAKEUPCLOCK_CK_SPRE_16BITS,30); //配置WAKE UP中断,30秒钟唤醒一次  
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);  //进入停机模式
  SystemInit();
__HAL_RCC_RTC_DISABLE();//RTC时钟禁止[/mw_shl_code]
不良苏
3楼-- · 2019-07-20 19:48
 精彩回答 2  元偷偷看……