From 4da02951027c198d574d5139fe818317769339b3 Mon Sep 17 00:00:00 2001 From: jianli Date: Mon, 26 Sep 2022 18:47:01 +0800 Subject: [PATCH] [Add]Add cancel alarm --- drivers/drivers-x16xx/src/x16xx_hal_rtc.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/drivers/drivers-x16xx/src/x16xx_hal_rtc.c b/drivers/drivers-x16xx/src/x16xx_hal_rtc.c index 44b357a9..cce802c4 100644 --- a/drivers/drivers-x16xx/src/x16xx_hal_rtc.c +++ b/drivers/drivers-x16xx/src/x16xx_hal_rtc.c @@ -313,7 +313,7 @@ static void RTC_Time64_To_TM(int64_t time, RTC_TimeTypeDef *tm) * * @return 返回0 */ -static int RTC_Tm_To_Time(RTC_TimeTypeDef *tm, unsigned long *time) +int RTC_Tm_To_Time(RTC_TimeTypeDef *tm, unsigned long *time) { *time = RTC_Tm_To_Time64(tm); @@ -449,11 +449,9 @@ void HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc /* , RTC_TimeTypeDef *sTime */) hrtc->Time.tm_year -= 1970; RTC_Tm_To_Time(&hrtc->Time, &time); - __HAL_RTC_SET_SECOND(hrtc, time); __HAL_UnLock(&hrtc->Lock); - } /* @@ -474,6 +472,7 @@ void HAL_RTC_GetTime(RTC_HandleTypeDef *hrtc /* , RTC_TimeTypeDef *sTime */) hrtc->Time.tm_year += 1970; __HAL_UnLock(&hrtc->Lock); + // prom_printk("get : %d-%d-%d %d:%d:%d\n", hrtc->Time.tm_year, hrtc->Time.tm_mon, hrtc->Time.tm_mday, hrtc->Time.tm_hour, hrtc->Time.tm_min, hrtc->Time.tm_sec); } @@ -497,8 +496,23 @@ void HAL_RTC_SetAlarm(RTC_HandleTypeDef *hrtc) __HAL_RTC_ENABLE_ALARM(hrtc); __HAL_UnLock(&hrtc->Lock); + } +/** + * @brief RTC关闭闹钟 + * + * param hrtc rtc句柄 + */ +void HAL_RTC_CloseAlarm(RTC_HandleTypeDef *hrtc) +{ + __HAL_Lock(&hrtc->Lock); + + __HAL_RTC_DISABLE_ALARM(hrtc); + + __HAL_UnLock(&hrtc->Lock); + +} /** * @brief RTC获取闹钟时间 * @@ -517,6 +531,7 @@ void HAL_RTC_GetAlarm(RTC_HandleTypeDef *hrtc) hrtc->Alarm.tm_year += 1970; __HAL_UnLock(&hrtc->Lock); + } /** @@ -561,7 +576,7 @@ void HAL_RTC_IRQHandler(int irq, void *data) } if (is_alarm_interrupt) { - + __HAL_RTC_CLEAR_ALARM_FLAG(hrtc); HAL_RTC_Alarm_Callback(hrtc); -- Gitee