diff --git a/drivers/drivers-x16xx/src/x16xx_hal_rtc.c b/drivers/drivers-x16xx/src/x16xx_hal_rtc.c index 44b357a9e4696ac84c98b45930eb79d9d57a730b..eb91ce5b889cb6b86309b66a1e890418d8aef2e9 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); @@ -332,7 +332,6 @@ static void RTC_Time_To_TM(unsigned long time, RTC_TimeTypeDef *tm) } - /** * @} */ @@ -449,11 +448,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 +471,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 +495,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 +530,7 @@ void HAL_RTC_GetAlarm(RTC_HandleTypeDef *hrtc) hrtc->Alarm.tm_year += 1970; __HAL_UnLock(&hrtc->Lock); + } /** @@ -561,7 +575,7 @@ void HAL_RTC_IRQHandler(int irq, void *data) } if (is_alarm_interrupt) { - + __HAL_RTC_CLEAR_ALARM_FLAG(hrtc); HAL_RTC_Alarm_Callback(hrtc);