STM32F4xx HAL Driver master
STM32CubeF4 HAL / LL Drivers API Reference
Loading...
Searching...
No Matches
HAL TimeBase RTC WakeUp Template
Collaboration diagram for HAL TimeBase RTC WakeUp Template:

Macros

#define RTC_CLOCK_SOURCE_HSE
#define RTC_ASYNCH_PREDIV   99U
#define RTC_SYNCH_PREDIV   9U
#define RCC_RTCCLKSOURCE_1MHZ   ((uint32_t)((uint32_t)RCC_BDCR_RTCSEL | (uint32_t)((HSE_VALUE/1000000U) << 16U)))

Functions

void RTC_WKUP_IRQHandler (void)
 This function handles WAKE UP TIMER interrupt request.
HAL_StatusTypeDef HAL_InitTick (uint32_t TickPriority)
 This function configures the RTC_WKUP as a time base source. The time source is configured to have 1ms time base with a dedicated Tick interrupt priority. Wakeup Time base = ((RTC_ASYNCH_PREDIV + 1) * (RTC_SYNCH_PREDIV + 1)) / RTC_CLOCK = 1ms Wakeup Time = WakeupTimebase * WakeUpCounter (0 + 1) = 1 ms.
void HAL_SuspendTick (void)
 Suspend Tick increment.
void HAL_ResumeTick (void)
 Resume Tick increment.
void HAL_RTCEx_WakeUpTimerEventCallback (RTC_HandleTypeDef *hrtc)
 Wake Up Timer Event Callback in non blocking mode.

Variables

RTC_HandleTypeDef hRTC_Handle

Detailed Description

Macro Definition Documentation

◆ RCC_RTCCLKSOURCE_1MHZ

#define RCC_RTCCLKSOURCE_1MHZ   ((uint32_t)((uint32_t)RCC_BDCR_RTCSEL | (uint32_t)((HSE_VALUE/1000000U) << 16U)))

Definition at line 75 of file stm32f4xx_hal_timebase_rtc_wakeup_template.c.

◆ RTC_ASYNCH_PREDIV

#define RTC_ASYNCH_PREDIV   99U

Definition at line 73 of file stm32f4xx_hal_timebase_rtc_wakeup_template.c.

◆ RTC_CLOCK_SOURCE_HSE

#define RTC_CLOCK_SOURCE_HSE

Definition at line 68 of file stm32f4xx_hal_timebase_rtc_wakeup_template.c.

◆ RTC_SYNCH_PREDIV

#define RTC_SYNCH_PREDIV   9U

Definition at line 74 of file stm32f4xx_hal_timebase_rtc_wakeup_template.c.

Function Documentation

◆ HAL_InitTick()

HAL_StatusTypeDef HAL_InitTick ( uint32_t TickPriority)

This function configures the RTC_WKUP as a time base source. The time source is configured to have 1ms time base with a dedicated Tick interrupt priority. Wakeup Time base = ((RTC_ASYNCH_PREDIV + 1) * (RTC_SYNCH_PREDIV + 1)) / RTC_CLOCK = 1ms Wakeup Time = WakeupTimebase * WakeUpCounter (0 + 1) = 1 ms.

Note
This function is called automatically at the beginning of program after reset by HAL_Init() or at any time when clock is configured, by HAL_RCC_ClockConfig().
Parameters
TickPriorityTick interrupt priority.
Return values
HALstatus

Definition at line 103 of file stm32f4xx_hal_timebase_rtc_wakeup_template.c.

References __HAL_PWR_CLEAR_FLAG, __HAL_RCC_RTC_ENABLE, __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG, __HAL_RTC_WAKEUPTIMER_DISABLE, __HAL_RTC_WAKEUPTIMER_DISABLE_IT, __HAL_RTC_WAKEUPTIMER_ENABLE, __HAL_RTC_WAKEUPTIMER_ENABLE_IT, __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT, __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE, __HAL_RTC_WAKEUPTIMER_GET_FLAG, __HAL_RTC_WRITEPROTECTION_DISABLE, __HAL_RTC_WRITEPROTECTION_ENABLE, HAL_ERROR, HAL_NVIC_EnableIRQ(), HAL_NVIC_SetPriority(), HAL_OK, HAL_RCC_OscConfig(), HAL_RCCEx_PeriphCLKConfig(), HAL_RTC_Init(), hRTC_Handle, RCC_OscInitTypeDef::HSEState, RCC_OscInitTypeDef::LSEState, RCC_OscInitTypeDef::LSIState, RCC_OscInitTypeDef::OscillatorType, RCC_OscInitTypeDef::PLL, RCC_PLLInitTypeDef::PLLState, PWR_FLAG_WU, RCC_HSE_ON, RCC_LSE_ON, RCC_LSI_ON, RCC_OSCILLATORTYPE_HSE, RCC_OSCILLATORTYPE_LSE, RCC_OSCILLATORTYPE_LSI, RCC_PLL_NONE, RCC_RTCCLKSOURCE_1MHZ, RCC_RTCCLKSOURCE_LSE, RCC_RTCCLKSOURCE_LSI, RTC_ASYNCH_PREDIV, RTC_FLAG_WUTF, RTC_FLAG_WUTWF, RTC_HOURFORMAT_24, RTC_IT_WUT, RTC_OUTPUT_DISABLE, RTC_OUTPUT_POLARITY_HIGH, RTC_OUTPUT_TYPE_OPENDRAIN, RTC_SYNCH_PREDIV, RTC_WAKEUPCLOCK_CK_SPRE_16BITS, and uwTickPrio.

Here is the call graph for this function:

◆ HAL_ResumeTick()

void HAL_ResumeTick ( void )

Resume Tick increment.

Note
Enable the tick increment by Enabling RTC_WKUP interrupt.
Return values
None

Definition at line 253 of file stm32f4xx_hal_timebase_rtc_wakeup_template.c.

References __HAL_RTC_WAKEUPTIMER_ENABLE_IT, __HAL_RTC_WRITEPROTECTION_DISABLE, __HAL_RTC_WRITEPROTECTION_ENABLE, hRTC_Handle, and RTC_IT_WUT.

◆ HAL_RTCEx_WakeUpTimerEventCallback()

void HAL_RTCEx_WakeUpTimerEventCallback ( RTC_HandleTypeDef * hrtc)

Wake Up Timer Event Callback in non blocking mode.

Note
This function is called when RTC_WKUP interrupt took place, inside RTC_WKUP_IRQHandler(). It makes a direct call to HAL_IncTick() to increment a global variable "uwTick" used as application time base.
Parameters
hrtcRTC handle
Return values
None

Definition at line 271 of file stm32f4xx_hal_timebase_rtc_wakeup_template.c.

References HAL_IncTick().

Here is the call graph for this function:

◆ HAL_SuspendTick()

void HAL_SuspendTick ( void )

Suspend Tick increment.

Note
Disable the tick increment by disabling RTC_WKUP interrupt.
Return values
None

Definition at line 238 of file stm32f4xx_hal_timebase_rtc_wakeup_template.c.

References __HAL_RTC_WAKEUPTIMER_DISABLE_IT, __HAL_RTC_WRITEPROTECTION_DISABLE, __HAL_RTC_WRITEPROTECTION_ENABLE, hRTC_Handle, and RTC_IT_WUT.

◆ RTC_WKUP_IRQHandler()

void RTC_WKUP_IRQHandler ( void )

This function handles WAKE UP TIMER interrupt request.

Return values
None

Definition at line 280 of file stm32f4xx_hal_timebase_rtc_wakeup_template.c.

References HAL_RTCEx_WakeUpTimerIRQHandler(), and hRTC_Handle.

Here is the call graph for this function:

Variable Documentation

◆ hRTC_Handle

RTC_HandleTypeDef hRTC_Handle

Definition at line 83 of file stm32f4xx_hal_timebase_rtc_wakeup_template.c.