设置唤醒的代码如下:
HAL_RTCEx_DeactivateWakeUpTimer(&hrtc);
HAL_Delay(1);
//设置唤醒时间计数器
if(HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, sleep_time-1, RTC_WAKEUPCLOCK_CK_SPRE_16BITS)!= HAL_OK){
printf("设置新休眠时间失败\r\n");
}
当使用RTC_WAKEUPCLOCK_CK_SPRE_16BITS时,单片机休眠后可以在指定的时间内唤醒,但如果改成RTC_WAKEUPCLOCK_CK_SPRE_17BITS其他参数都不变的情况下,单片机无法在指定时间唤醒,这种情况是怎么回事,有人晓得不,因为需要休眠时间超过18小时,16bit位不够,所以需要改成17bit |