RTC Wake-up functions.
More...
|
HAL_StatusTypeDef | HAL_RTCEx_SetWakeUpTimer (RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock) |
| Set wake up timer. More...
|
|
HAL_StatusTypeDef | HAL_RTCEx_SetWakeUpTimer_IT (RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock, uint32_t WakeUpAutoClr) HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc |
| Set wake up timer with interrupt. More...
|
|
HAL_StatusTypeDef | HAL_RTCEx_SetWakeUpTimer_IT (RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock) |
|
HAL_StatusTypeDef | HAL_RTCEx_DeactivateWakeUpTimer (RTC_HandleTypeDef *hrtc) |
| Deactivate wake up timer counter. More...
|
|
uint32_t | HAL_RTCEx_GetWakeUpTimer (RTC_HandleTypeDef *hrtc) |
| Get wake up timer counter. More...
|
|
void | HAL_RTCEx_WakeUpTimerIRQHandler (RTC_HandleTypeDef *hrtc) |
| Handle Wake Up Timer interrupt request. More...
|
|
void | HAL_RTCEx_WakeUpTimerEventCallback (RTC_HandleTypeDef *hrtc) |
|
HAL_StatusTypeDef | HAL_RTCEx_PollForWakeUpTimerEvent (RTC_HandleTypeDef *hrtc, uint32_t Timeout) |
|
| assert_param (IS_RTC_WAKEUP_CLOCK(WakeUpClock)) |
|
| assert_param (IS_RTC_WAKEUP_COUNTER(WakeUpCounter)) |
|
| assert_param (WakeUpAutoClr<=WakeUpCounter) |
|
| __HAL_LOCK (hrtc) |
|
| __HAL_RTC_WRITEPROTECTION_DISABLE (hrtc) |
|
| CLEAR_BIT (hrtc->Instance->CR, RTC_CR_WUTE) |
|
| __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG (hrtc, RTC_FLAG_WUTF) |
|
| if (READ_BIT(hrtc->Instance->ICSR, RTC_ICSR_INITF)==0U) |
|
| MODIFY_REG (hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock) |
|
| if (WakeUpAutoClr !=0u) |
|
| __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT () |
|
| __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE () |
|
| __HAL_RTC_WAKEUPTIMER_ENABLE_IT (hrtc, RTC_IT_WUT) |
|
| __HAL_RTC_WAKEUPTIMER_ENABLE (hrtc) |
|
| __HAL_RTC_WRITEPROTECTION_ENABLE (hrtc) |
|
| __HAL_UNLOCK (hrtc) |
|
RTC Wake-up functions.
===============================================================================
##### RTC Wake-up functions #####
===============================================================================
[..] This section provides functions allowing to configure Wake-up feature
◆ __HAL_LOCK()
◆ __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG()
__HAL_RTC_WAKEUPTIMER_CLEAR_FLAG |
( |
hrtc |
, |
|
|
RTC_FLAG_WUTF |
|
|
) |
| |
◆ __HAL_RTC_WAKEUPTIMER_ENABLE()
__HAL_RTC_WAKEUPTIMER_ENABLE |
( |
hrtc |
| ) |
|
◆ __HAL_RTC_WAKEUPTIMER_ENABLE_IT()
__HAL_RTC_WAKEUPTIMER_ENABLE_IT |
( |
hrtc |
, |
|
|
RTC_IT_WUT |
|
|
) |
| |
◆ __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT()
__HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT |
( |
| ) |
|
◆ __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE()
__HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE |
( |
| ) |
|
◆ __HAL_RTC_WRITEPROTECTION_DISABLE()
__HAL_RTC_WRITEPROTECTION_DISABLE |
( |
hrtc |
| ) |
|
◆ __HAL_RTC_WRITEPROTECTION_ENABLE()
__HAL_RTC_WRITEPROTECTION_ENABLE |
( |
hrtc |
| ) |
|
◆ __HAL_UNLOCK()
◆ assert_param() [1/3]
◆ assert_param() [2/3]
◆ assert_param() [3/3]
assert_param |
( |
WakeUpAutoClr<= |
WakeUpCounter | ) |
|
◆ CLEAR_BIT()
CLEAR_BIT |
( |
hrtc->Instance-> |
CR, |
|
|
RTC_CR_WUTE |
|
|
) |
| |
◆ HAL_RTCEx_DeactivateWakeUpTimer()
Deactivate wake up timer counter.
- Parameters
-
- Return values
-
Definition at line 893 of file stm32l4xx_hal_rtc_ex.c.
906 __HAL_RTC_WAKEUPTIMER_DISABLE(hrtc);
909 __HAL_RTC_WAKEUPTIMER_DISABLE_IT(hrtc, RTC_IT_WUT);
913 while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == 0U)
915 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
__IO HAL_RTCStateTypeDef State
__HAL_RTC_WRITEPROTECTION_DISABLE(hrtc)
uint32_t HAL_GetTick(void)
Provide a tick value in millisecond.
__HAL_RTC_WRITEPROTECTION_ENABLE(hrtc)
◆ HAL_RTCEx_GetWakeUpTimer()
Get wake up timer counter.
- Parameters
-
- Return values
-
Definition at line 945 of file stm32l4xx_hal_rtc_ex.c.
948 return ((uint32_t)(hrtc->
Instance->WUTR & RTC_WUTR_WUT));
◆ HAL_RTCEx_PollForWakeUpTimerEvent()
HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent |
( |
RTC_HandleTypeDef * |
hrtc, |
|
|
uint32_t |
Timeout |
|
) |
| |
◆ HAL_RTCEx_SetWakeUpTimer()
HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer |
( |
RTC_HandleTypeDef * |
hrtc, |
|
|
uint32_t |
WakeUpCounter, |
|
|
uint32_t |
WakeUpClock |
|
) |
| |
Set wake up timer.
- Parameters
-
hrtc | RTC handle |
WakeUpCounter | Wake up counter |
WakeUpClock | Wake up clock |
- Return values
-
Definition at line 699 of file stm32l4xx_hal_rtc_ex.c.
721 #if defined(STM32L412xx) || defined(STM32L422xx) 722 if (READ_BIT(hrtc->
Instance->ICSR, RTC_ICSR_INITF) == 0U)
724 if (READ_BIT(hrtc->
Instance->ISR, RTC_ISR_INITF) == 0U)
728 #if defined(STM32L412xx) || defined(STM32L422xx) 729 while (READ_BIT(hrtc->
Instance->ICSR, RTC_ICSR_WUTWF) == 0U)
731 while (READ_BIT(hrtc->
Instance->ISR, RTC_ISR_WUTWF) == 0U)
734 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
756 SET_BIT(hrtc->
Instance->CR, RTC_CR_WUTE);
HAL_StatusTypeDef uint32_t WakeUpCounter
HAL_StatusTypeDef uint32_t uint32_t WakeUpClock
__IO HAL_RTCStateTypeDef State
__HAL_RTC_WRITEPROTECTION_DISABLE(hrtc)
uint32_t HAL_GetTick(void)
Provide a tick value in millisecond.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
__HAL_RTC_WRITEPROTECTION_ENABLE(hrtc)
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
◆ HAL_RTCEx_SetWakeUpTimer_IT() [1/2]
HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT |
( |
RTC_HandleTypeDef * |
hrtc, |
|
|
uint32_t |
WakeUpCounter, |
|
|
uint32_t |
WakeUpClock, |
|
|
uint32_t |
WakeUpAutoClr |
|
) |
| |
Set wake up timer with interrupt.
- Parameters
-
hrtc | RTC handle |
WakeUpCounter | Wake up counter |
WakeUpClock | Wake up clock |
WakeUpAutoClr | Wake up auto clear value (look at WUTOCLR in reference manual)
- Only available for STM32L412xx and STM32L422xx
- No effect if WakeUpAutoClr is set to zero
- This feature is meaningful in case of Low power mode to avoid any RTC software execution after Wake Up. That is why when WakeUpAutoClr is set, EXTI is configured as EVENT instead of Interrupt to avoid useless IRQ handler execution.
|
- Return values
-
◆ HAL_RTCEx_SetWakeUpTimer_IT() [2/2]
HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT |
( |
RTC_HandleTypeDef * |
hrtc, |
|
|
uint32_t |
WakeUpCounter, |
|
|
uint32_t |
WakeUpClock |
|
) |
| |
◆ HAL_RTCEx_WakeUpTimerEventCallback()
◆ HAL_RTCEx_WakeUpTimerIRQHandler()
Handle Wake Up Timer interrupt request.
- Parameters
-
- Return values
-
Wake Up Timer callback.
- Parameters
-
- Return values
-
Handle Wake Up Timer Polling.
- Parameters
-
hrtc | RTC handle |
Timeout | Timeout duration |
- Return values
-
Definition at line 956 of file stm32l4xx_hal_rtc_ex.c.
◆ if() [1/2]
if |
( |
READ_BIT(hrtc->Instance->ICSR, RTC_ICSR_INITF) |
= = 0U | ) |
|
Definition at line 815 of file stm32l4xx_hal_rtc_ex.c.
821 #if defined(STM32L412xx) || defined(STM32L422xx) 822 while (READ_BIT(hrtc->Instance->ICSR, RTC_ICSR_WUTWF) == 0U)
824 while (READ_BIT(hrtc->Instance->ISR, RTC_ISR_WUTWF) == 0U)
827 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
uint32_t HAL_GetTick(void)
Provide a tick value in millisecond.
__HAL_RTC_WRITEPROTECTION_ENABLE(hrtc)
◆ if() [2/2]
if |
( |
WakeUpAutoClr ! |
= 0u | ) |
|
◆ MODIFY_REG()
MODIFY_REG |
( |
hrtc->Instance-> |
CR, |
|
|
RTC_CR_WUCKSEL |
, |
|
|
(uint32_t) |
WakeUpClock |
|
) |
| |
◆ else
◆ HAL_OK
◆ State
◆ WakeUpClock
HAL_StatusTypeDef uint32_t uint32_t WakeUpClock |
◆ WakeUpCounter
HAL_StatusTypeDef uint32_t WakeUpCounter |
◆ WUTR
hrtc Instance WUTR = (uint32_t)(WakeUpCounter | (WakeUpAutoClr << RTC_WUTR_WUTOCLR_Pos)) |