diff --git a/targets/TARGET_STM/TARGET_STM32F0/device/stm32f0xx_hal_rtc.h b/targets/TARGET_STM/TARGET_STM32F0/device/stm32f0xx_hal_rtc.h index dd1c54f632..453d5065e3 100644 --- a/targets/TARGET_STM/TARGET_STM32F0/device/stm32f0xx_hal_rtc.h +++ b/targets/TARGET_STM/TARGET_STM32F0/device/stm32f0xx_hal_rtc.h @@ -43,6 +43,7 @@ /* Includes ------------------------------------------------------------------*/ #include "stm32f0xx_hal_def.h" +#include "stm32f0xx_ll_rtc.h" /** @addtogroup STM32F0xx_HAL_Driver * @{ diff --git a/targets/TARGET_STM/TARGET_STM32F2/device/stm32f2xx_hal_rtc.h b/targets/TARGET_STM/TARGET_STM32F2/device/stm32f2xx_hal_rtc.h index 9254a299d0..9fd6fe337c 100644 --- a/targets/TARGET_STM/TARGET_STM32F2/device/stm32f2xx_hal_rtc.h +++ b/targets/TARGET_STM/TARGET_STM32F2/device/stm32f2xx_hal_rtc.h @@ -45,6 +45,7 @@ /* Includes ------------------------------------------------------------------*/ #include "stm32f2xx_hal_def.h" +#include "stm32f2xx_ll_rtc.h" /** @addtogroup STM32F2xx_HAL_Driver * @{ diff --git a/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_rtc.h b/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_rtc.h index c909e94c39..a256fb7337 100644 --- a/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_rtc.h +++ b/targets/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_rtc.h @@ -43,6 +43,7 @@ /* Includes ------------------------------------------------------------------*/ #include "stm32f3xx_hal_def.h" +#include "stm32f3xx_ll_rtc.h" /** @addtogroup STM32F3xx_HAL_Driver * @{ diff --git a/targets/TARGET_STM/TARGET_STM32F4/device/stm32f4xx_hal_rtc.h b/targets/TARGET_STM/TARGET_STM32F4/device/stm32f4xx_hal_rtc.h index 8744804d6b..2a7282a3ea 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/device/stm32f4xx_hal_rtc.h +++ b/targets/TARGET_STM/TARGET_STM32F4/device/stm32f4xx_hal_rtc.h @@ -43,6 +43,7 @@ /* Includes ------------------------------------------------------------------*/ #include "stm32f4xx_hal_def.h" +#include "stm32f4xx_ll_rtc.h" /** @addtogroup STM32F4xx_HAL_Driver * @{ diff --git a/targets/TARGET_STM/TARGET_STM32F7/device/stm32f7xx_hal_rtc.h b/targets/TARGET_STM/TARGET_STM32F7/device/stm32f7xx_hal_rtc.h index 00504a4ca9..5acd12a040 100644 --- a/targets/TARGET_STM/TARGET_STM32F7/device/stm32f7xx_hal_rtc.h +++ b/targets/TARGET_STM/TARGET_STM32F7/device/stm32f7xx_hal_rtc.h @@ -43,6 +43,7 @@ /* Includes ------------------------------------------------------------------*/ #include "stm32f7xx_hal_def.h" +#include "stm32f7xx_ll_rtc.h" /** @addtogroup STM32F7xx_HAL_Driver * @{ diff --git a/targets/TARGET_STM/TARGET_STM32L0/device/stm32l0xx_hal_rtc.h b/targets/TARGET_STM/TARGET_STM32L0/device/stm32l0xx_hal_rtc.h index 597d1f70f9..037d6fa059 100644 --- a/targets/TARGET_STM/TARGET_STM32L0/device/stm32l0xx_hal_rtc.h +++ b/targets/TARGET_STM/TARGET_STM32L0/device/stm32l0xx_hal_rtc.h @@ -43,6 +43,7 @@ /* Includes ------------------------------------------------------------------*/ #include "stm32l0xx_hal_def.h" +#include "stm32l0xx_ll_rtc.h" /** @addtogroup STM32L0xx_HAL_Driver * @{ diff --git a/targets/TARGET_STM/TARGET_STM32L1/device/stm32l1xx_hal_rtc.h b/targets/TARGET_STM/TARGET_STM32L1/device/stm32l1xx_hal_rtc.h index 3b9b08ac5c..231511cc0c 100644 --- a/targets/TARGET_STM/TARGET_STM32L1/device/stm32l1xx_hal_rtc.h +++ b/targets/TARGET_STM/TARGET_STM32L1/device/stm32l1xx_hal_rtc.h @@ -43,6 +43,7 @@ /* Includes ------------------------------------------------------------------*/ #include "stm32l1xx_hal_def.h" +#include "stm32l1xx_ll_rtc.h" /** @addtogroup STM32L1xx_HAL_Driver * @{ diff --git a/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_rtc.h b/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_rtc.h index ed269a98ca..25f40e0447 100644 --- a/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_rtc.h +++ b/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_rtc.h @@ -43,6 +43,7 @@ /* Includes ------------------------------------------------------------------*/ #include "stm32l4xx_hal_def.h" +#include "stm32l4xx_ll_rtc.h" /** @addtogroup STM32L4xx_HAL_Driver * @{ diff --git a/targets/TARGET_STM/rtc_api.c b/targets/TARGET_STM/rtc_api.c index 7895a4c5f9..798ce29bb1 100644 --- a/targets/TARGET_STM/rtc_api.c +++ b/targets/TARGET_STM/rtc_api.c @@ -93,6 +93,10 @@ void rtc_init(void) // Enable RTC __HAL_RCC_RTC_ENABLE(); +#if defined __HAL_RCC_RTCAPB_CLK_ENABLE /* part of STM32L4 */ + __HAL_RCC_RTCAPB_CLK_ENABLE(); +#endif /* __HAL_RCC_RTCAPB_CLK_ENABLE */ + RtcHandle.Instance = RTC; RtcHandle.State = HAL_RTC_STATE_RESET; @@ -105,6 +109,12 @@ void rtc_init(void) RtcHandle.Init.OutPut = RTC_OUTPUT_DISABLE; RtcHandle.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH; RtcHandle.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN; +#if defined (RTC_OUTPUT_REMAP_NONE) + RtcHandle.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE; +#endif /* defined (RTC_OUTPUT_REMAP_NONE) */ +#if defined (RTC_OUTPUT_PULLUP_NONE) + RtcHandle.Init.OutPutPullUp = RTC_OUTPUT_PULLUP_NONE; +#endif /* defined (RTC_OUTPUT_PULLUP_NONE) */ #endif /* TARGET_STM32F1 */ if (HAL_RTC_Init(&RtcHandle) != HAL_OK) { @@ -257,11 +267,11 @@ void rtc_write(time_t t) int rtc_isenabled(void) { -#if !(TARGET_STM32F1) - return ((RTC->ISR & RTC_ISR_INITS) == RTC_ISR_INITS); -#else /* TARGET_STM32F1 */ +#if defined (RTC_FLAG_INITS) /* all STM32 except STM32F1 */ + return LL_RTC_IsActiveFlag_INITS(RTC); +#else /* RTC_FLAG_INITS */ /* TARGET_STM32F1 */ return ((RTC->CRL & RTC_CRL_RSF) == RTC_CRL_RSF); -#endif /* TARGET_STM32F1 */ +#endif /* RTC_FLAG_INITS */ } @@ -296,7 +306,9 @@ static void RTC_IRQHandler(void) } } +#ifdef __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG(); +#endif } uint32_t rtc_read_lp(void)