STM32F479xx HAL User Manual
Data Structures | Defines | Typedefs | Enumerations | Functions
stm32f4xx_hal_rtc.h File Reference

Header file of RTC HAL module. More...

#include "stm32f4xx_hal_def.h"
#include "stm32f4xx_hal_rtc_ex.h"

Go to the source code of this file.

Data Structures

struct  RTC_InitTypeDef
 RTC Configuration Structure definition. More...
struct  RTC_TimeTypeDef
 RTC Time structure definition. More...
struct  RTC_DateTypeDef
 RTC Date structure definition. More...
struct  RTC_AlarmTypeDef
 RTC Alarm structure definition. More...
struct  __RTC_HandleTypeDef
 RTC Handle Structure definition. More...

Defines

#define RTC_HOURFORMAT_24   0x00000000U
#define RTC_HOURFORMAT_12   0x00000040U
#define RTC_OUTPUT_DISABLE   0x00000000U
#define RTC_OUTPUT_ALARMA   0x00200000U
#define RTC_OUTPUT_ALARMB   0x00400000U
#define RTC_OUTPUT_WAKEUP   0x00600000U
#define RTC_OUTPUT_POLARITY_HIGH   0x00000000U
#define RTC_OUTPUT_POLARITY_LOW   0x00100000U
#define RTC_OUTPUT_TYPE_OPENDRAIN   0x00000000U
#define RTC_OUTPUT_TYPE_PUSHPULL   0x00040000U
#define RTC_HOURFORMAT12_AM   ((uint8_t)0x00)
#define RTC_HOURFORMAT12_PM   ((uint8_t)0x40)
#define RTC_DAYLIGHTSAVING_SUB1H   0x00020000U
#define RTC_DAYLIGHTSAVING_ADD1H   0x00010000U
#define RTC_DAYLIGHTSAVING_NONE   0x00000000U
#define RTC_STOREOPERATION_RESET   0x00000000U
#define RTC_STOREOPERATION_SET   0x00040000U
#define RTC_FORMAT_BIN   0x00000000U
#define RTC_FORMAT_BCD   0x00000001U
#define RTC_MONTH_JANUARY   ((uint8_t)0x01)
#define RTC_MONTH_FEBRUARY   ((uint8_t)0x02)
#define RTC_MONTH_MARCH   ((uint8_t)0x03)
#define RTC_MONTH_APRIL   ((uint8_t)0x04)
#define RTC_MONTH_MAY   ((uint8_t)0x05)
#define RTC_MONTH_JUNE   ((uint8_t)0x06)
#define RTC_MONTH_JULY   ((uint8_t)0x07)
#define RTC_MONTH_AUGUST   ((uint8_t)0x08)
#define RTC_MONTH_SEPTEMBER   ((uint8_t)0x09)
#define RTC_MONTH_OCTOBER   ((uint8_t)0x10)
#define RTC_MONTH_NOVEMBER   ((uint8_t)0x11)
#define RTC_MONTH_DECEMBER   ((uint8_t)0x12)
#define RTC_WEEKDAY_MONDAY   ((uint8_t)0x01)
#define RTC_WEEKDAY_TUESDAY   ((uint8_t)0x02)
#define RTC_WEEKDAY_WEDNESDAY   ((uint8_t)0x03)
#define RTC_WEEKDAY_THURSDAY   ((uint8_t)0x04)
#define RTC_WEEKDAY_FRIDAY   ((uint8_t)0x05)
#define RTC_WEEKDAY_SATURDAY   ((uint8_t)0x06)
#define RTC_WEEKDAY_SUNDAY   ((uint8_t)0x07)
#define RTC_ALARMDATEWEEKDAYSEL_DATE   0x00000000U
#define RTC_ALARMDATEWEEKDAYSEL_WEEKDAY   0x40000000U
#define RTC_ALARMMASK_NONE   0x00000000U
#define RTC_ALARMMASK_DATEWEEKDAY   RTC_ALRMAR_MSK4
#define RTC_ALARMMASK_HOURS   RTC_ALRMAR_MSK3
#define RTC_ALARMMASK_MINUTES   RTC_ALRMAR_MSK2
#define RTC_ALARMMASK_SECONDS   RTC_ALRMAR_MSK1
#define RTC_ALARMMASK_ALL   0x80808080U
#define RTC_ALARM_A   RTC_CR_ALRAE
#define RTC_ALARM_B   RTC_CR_ALRBE
#define RTC_ALARMSUBSECONDMASK_ALL   0x00000000U
#define RTC_ALARMSUBSECONDMASK_SS14_1   0x01000000U
#define RTC_ALARMSUBSECONDMASK_SS14_2   0x02000000U
#define RTC_ALARMSUBSECONDMASK_SS14_3   0x03000000U
#define RTC_ALARMSUBSECONDMASK_SS14_4   0x04000000U
#define RTC_ALARMSUBSECONDMASK_SS14_5   0x05000000U
#define RTC_ALARMSUBSECONDMASK_SS14_6   0x06000000U
#define RTC_ALARMSUBSECONDMASK_SS14_7   0x07000000U
#define RTC_ALARMSUBSECONDMASK_SS14_8   0x08000000U
#define RTC_ALARMSUBSECONDMASK_SS14_9   0x09000000U
#define RTC_ALARMSUBSECONDMASK_SS14_10   0x0A000000U
#define RTC_ALARMSUBSECONDMASK_SS14_11   0x0B000000U
#define RTC_ALARMSUBSECONDMASK_SS14_12   0x0C000000U
#define RTC_ALARMSUBSECONDMASK_SS14_13   0x0D000000U
#define RTC_ALARMSUBSECONDMASK_SS14   0x0E000000U
#define RTC_ALARMSUBSECONDMASK_NONE   0x0F000000U
#define RTC_IT_TS   0x00008000U
#define RTC_IT_WUT   0x00004000U
#define RTC_IT_ALRB   0x00002000U
#define RTC_IT_ALRA   0x00001000U
#define RTC_IT_TAMP   0x00000004U /* Used only to Enable the Tamper Interrupt */
#define RTC_IT_TAMP1   0x00020000U
#define RTC_IT_TAMP2   0x00040000U
#define RTC_FLAG_RECALPF   0x00010000U
#define RTC_FLAG_TAMP2F   0x00004000U
#define RTC_FLAG_TAMP1F   0x00002000U
#define RTC_FLAG_TSOVF   0x00001000U
#define RTC_FLAG_TSF   0x00000800U
#define RTC_FLAG_WUTF   0x00000400U
#define RTC_FLAG_ALRBF   0x00000200U
#define RTC_FLAG_ALRAF   0x00000100U
#define RTC_FLAG_INITF   0x00000040U
#define RTC_FLAG_RSF   0x00000020U
#define RTC_FLAG_INITS   0x00000010U
#define RTC_FLAG_SHPF   0x00000008U
#define RTC_FLAG_WUTWF   0x00000004U
#define RTC_FLAG_ALRBWF   0x00000002U
#define RTC_FLAG_ALRAWF   0x00000001U
#define __HAL_RTC_RESET_HANDLE_STATE(__HANDLE__)
 Reset RTC handle state.
#define __HAL_RTC_WRITEPROTECTION_DISABLE(__HANDLE__)
 Disable the write protection for RTC registers.
#define __HAL_RTC_WRITEPROTECTION_ENABLE(__HANDLE__)
 Enable the write protection for RTC registers.
#define __HAL_RTC_ALARMA_ENABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR |= (RTC_CR_ALRAE))
 Enable the RTC ALARMA peripheral.
#define __HAL_RTC_ALARMA_DISABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR &= ~(RTC_CR_ALRAE))
 Disable the RTC ALARMA peripheral.
#define __HAL_RTC_ALARMB_ENABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR |= (RTC_CR_ALRBE))
 Enable the RTC ALARMB peripheral.
#define __HAL_RTC_ALARMB_DISABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR &= ~(RTC_CR_ALRBE))
 Disable the RTC ALARMB peripheral.
#define __HAL_RTC_ALARM_ENABLE_IT(__HANDLE__, __INTERRUPT__)   ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
 Enable the RTC Alarm interrupt.
#define __HAL_RTC_ALARM_DISABLE_IT(__HANDLE__, __INTERRUPT__)   ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
 Disable the RTC Alarm interrupt.
#define __HAL_RTC_ALARM_GET_IT(__HANDLE__, __INTERRUPT__)   (((((__HANDLE__)->Instance->ISR)& ((__INTERRUPT__)>> 4U)) != RESET)? SET : RESET)
 Check whether the specified RTC Alarm interrupt has occurred or not.
#define __HAL_RTC_ALARM_GET_FLAG(__HANDLE__, __FLAG__)   (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
 Get the selected RTC Alarm's flag status.
#define __HAL_RTC_ALARM_CLEAR_FLAG(__HANDLE__, __FLAG__)   ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
 Clear the RTC Alarm's pending flags.
#define __HAL_RTC_ALARM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)   (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
 Check whether the specified RTC Alarm interrupt has been enabled or not.
#define __HAL_RTC_ALARM_EXTI_ENABLE_IT()   (EXTI->IMR |= RTC_EXTI_LINE_ALARM_EVENT)
 Enable interrupt on the RTC Alarm associated Exti line.
#define __HAL_RTC_ALARM_EXTI_DISABLE_IT()   (EXTI->IMR &= ~(RTC_EXTI_LINE_ALARM_EVENT))
 Disable interrupt on the RTC Alarm associated Exti line.
#define __HAL_RTC_ALARM_EXTI_ENABLE_EVENT()   (EXTI->EMR |= RTC_EXTI_LINE_ALARM_EVENT)
 Enable event on the RTC Alarm associated Exti line.
#define __HAL_RTC_ALARM_EXTI_DISABLE_EVENT()   (EXTI->EMR &= ~(RTC_EXTI_LINE_ALARM_EVENT))
 Disable event on the RTC Alarm associated Exti line.
#define __HAL_RTC_ALARM_EXTI_ENABLE_FALLING_EDGE()   (EXTI->FTSR |= RTC_EXTI_LINE_ALARM_EVENT)
 Enable falling edge trigger on the RTC Alarm associated Exti line.
#define __HAL_RTC_ALARM_EXTI_DISABLE_FALLING_EDGE()   (EXTI->FTSR &= ~(RTC_EXTI_LINE_ALARM_EVENT))
 Disable falling edge trigger on the RTC Alarm associated Exti line.
#define __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE()   (EXTI->RTSR |= RTC_EXTI_LINE_ALARM_EVENT)
 Enable rising edge trigger on the RTC Alarm associated Exti line.
#define __HAL_RTC_ALARM_EXTI_DISABLE_RISING_EDGE()   (EXTI->RTSR &= ~(RTC_EXTI_LINE_ALARM_EVENT))
 Disable rising edge trigger on the RTC Alarm associated Exti line.
#define __HAL_RTC_ALARM_EXTI_ENABLE_RISING_FALLING_EDGE()
 Enable rising & falling edge trigger on the RTC Alarm associated Exti line.
#define __HAL_RTC_ALARM_EXTI_DISABLE_RISING_FALLING_EDGE()
 Disable rising & falling edge trigger on the RTC Alarm associated Exti line.
#define __HAL_RTC_ALARM_EXTI_GET_FLAG()   (EXTI->PR & RTC_EXTI_LINE_ALARM_EVENT)
 Check whether the RTC Alarm associated Exti line interrupt flag is set or not.
#define __HAL_RTC_ALARM_EXTI_CLEAR_FLAG()   (EXTI->PR = RTC_EXTI_LINE_ALARM_EVENT)
 Clear the RTC Alarm associated Exti line flag.
#define __HAL_RTC_ALARM_EXTI_GENERATE_SWIT()   (EXTI->SWIER |= RTC_EXTI_LINE_ALARM_EVENT)
 Generate a Software interrupt on RTC Alarm associated Exti line.
#define RTC_TR_RESERVED_MASK   0x007F7F7FU
#define RTC_DR_RESERVED_MASK   0x00FFFF3FU
#define RTC_INIT_MASK   0xFFFFFFFFU
#define RTC_RSF_MASK   0xFFFFFF5FU
#define RTC_FLAGS_MASK
#define RTC_TIMEOUT_VALUE   1000
#define RTC_EXTI_LINE_ALARM_EVENT   ((uint32_t)EXTI_IMR_MR17)
#define IS_RTC_HOUR_FORMAT(FORMAT)
#define IS_RTC_OUTPUT(OUTPUT)
#define IS_RTC_OUTPUT_POL(POL)
#define IS_RTC_OUTPUT_TYPE(TYPE)
#define IS_RTC_HOUR12(HOUR)   (((HOUR) > 0U) && ((HOUR) <= 12U))
#define IS_RTC_HOUR24(HOUR)   ((HOUR) <= 23U)
#define IS_RTC_ASYNCH_PREDIV(PREDIV)   ((PREDIV) <= 0x7FU)
#define IS_RTC_SYNCH_PREDIV(PREDIV)   ((PREDIV) <= 0x7FFFU)
#define IS_RTC_MINUTES(MINUTES)   ((MINUTES) <= 59U)
#define IS_RTC_SECONDS(SECONDS)   ((SECONDS) <= 59U)
#define IS_RTC_HOURFORMAT12(PM)   (((PM) == RTC_HOURFORMAT12_AM) || ((PM) == RTC_HOURFORMAT12_PM))
#define IS_RTC_DAYLIGHT_SAVING(SAVE)
#define IS_RTC_STORE_OPERATION(OPERATION)
#define IS_RTC_FORMAT(FORMAT)   (((FORMAT) == RTC_FORMAT_BIN) || ((FORMAT) == RTC_FORMAT_BCD))
#define IS_RTC_YEAR(YEAR)   ((YEAR) <= 99U)
#define IS_RTC_MONTH(MONTH)   (((MONTH) >= 1U) && ((MONTH) <= 12U))
#define IS_RTC_DATE(DATE)   (((DATE) >= 1U) && ((DATE) <= 31U))
#define IS_RTC_WEEKDAY(WEEKDAY)
#define IS_RTC_ALARM_DATE_WEEKDAY_DATE(DATE)   (((DATE) > 0U) && ((DATE) <= 31U))
#define IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(WEEKDAY)
#define IS_RTC_ALARM_DATE_WEEKDAY_SEL(SEL)
#define IS_RTC_ALARM_MASK(MASK)   (((MASK) & 0x7F7F7F7FU) == (uint32_t)RESET)
#define IS_RTC_ALARM(ALARM)   (((ALARM) == RTC_ALARM_A) || ((ALARM) == RTC_ALARM_B))
#define IS_RTC_ALARM_SUB_SECOND_VALUE(VALUE)   ((VALUE) <= 0x00007FFFU)
#define IS_RTC_ALARM_SUB_SECOND_MASK(MASK)

Typedefs

typedef struct __RTC_HandleTypeDef RTC_HandleTypeDef
 RTC Handle Structure definition.
typedef void(* pRTC_CallbackTypeDef )(RTC_HandleTypeDef *hrtc)
 HAL RTC Callback pointer definition.

Enumerations

enum  HAL_RTCStateTypeDef {
  HAL_RTC_STATE_RESET = 0x00U, HAL_RTC_STATE_READY = 0x01U, HAL_RTC_STATE_BUSY = 0x02U, HAL_RTC_STATE_TIMEOUT = 0x03U,
  HAL_RTC_STATE_ERROR = 0x04U
}
 HAL State structures definition. More...
enum  HAL_RTC_CallbackIDTypeDef {
  HAL_RTC_ALARM_A_EVENT_CB_ID = 0x00u, HAL_RTC_ALARM_B_EVENT_CB_ID = 0x01u, HAL_RTC_TIMESTAMP_EVENT_CB_ID = 0x02u, HAL_RTC_WAKEUPTIMER_EVENT_CB_ID = 0x03u,
  HAL_RTC_TAMPER1_EVENT_CB_ID = 0x04u, HAL_RTC_TAMPER2_EVENT_CB_ID = 0x05u, HAL_RTC_MSPINIT_CB_ID = 0x0Eu, HAL_RTC_MSPDEINIT_CB_ID = 0x0Fu
}
 HAL RTC Callback ID enumeration definition. More...

Functions

HAL_StatusTypeDef HAL_RTC_Init (RTC_HandleTypeDef *hrtc)
 Initializes the RTC peripheral.
HAL_StatusTypeDef HAL_RTC_DeInit (RTC_HandleTypeDef *hrtc)
 DeInitializes the RTC peripheral.
__weak void HAL_RTC_MspInit (RTC_HandleTypeDef *hrtc)
 Initializes the RTC MSP.
__weak void HAL_RTC_MspDeInit (RTC_HandleTypeDef *hrtc)
 DeInitializes the RTC MSP.
HAL_StatusTypeDef HAL_RTC_RegisterCallback (RTC_HandleTypeDef *hrtc, HAL_RTC_CallbackIDTypeDef CallbackID, pRTC_CallbackTypeDef pCallback)
 Register a User RTC Callback To be used instead of the weak predefined callback.
HAL_StatusTypeDef HAL_RTC_UnRegisterCallback (RTC_HandleTypeDef *hrtc, HAL_RTC_CallbackIDTypeDef CallbackID)
 Unregister an RTC Callback RTC callabck is redirected to the weak predefined callback.
HAL_StatusTypeDef HAL_RTC_SetTime (RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
 Sets RTC current time.
HAL_StatusTypeDef HAL_RTC_GetTime (RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
 Gets RTC current time.
HAL_StatusTypeDef HAL_RTC_SetDate (RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
 Sets RTC current date.
HAL_StatusTypeDef HAL_RTC_GetDate (RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
 Gets RTC current date.
void HAL_RTC_DST_Add1Hour (RTC_HandleTypeDef *hrtc)
 Daylight Saving Time, Add one hour to the calendar in one single operation without going through the initialization procedure.
void HAL_RTC_DST_Sub1Hour (RTC_HandleTypeDef *hrtc)
 Daylight Saving Time, Substract one hour from the calendar in one single operation without going through the initialization procedure.
void HAL_RTC_DST_SetStoreOperation (RTC_HandleTypeDef *hrtc)
 Daylight Saving Time, Set the store operation bit.
void HAL_RTC_DST_ClearStoreOperation (RTC_HandleTypeDef *hrtc)
 Daylight Saving Time, Clear the store operation bit.
uint32_t HAL_RTC_DST_ReadStoreOperation (RTC_HandleTypeDef *hrtc)
 Daylight Saving Time, Read the store operation bit.
HAL_StatusTypeDef HAL_RTC_SetAlarm (RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
 Sets the specified RTC Alarm.
HAL_StatusTypeDef HAL_RTC_SetAlarm_IT (RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
 Sets the specified RTC Alarm with Interrupt.
HAL_StatusTypeDef HAL_RTC_DeactivateAlarm (RTC_HandleTypeDef *hrtc, uint32_t Alarm)
 Deactivate the specified RTC Alarm.
HAL_StatusTypeDef HAL_RTC_GetAlarm (RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Alarm, uint32_t Format)
 Gets the RTC Alarm value and masks.
void HAL_RTC_AlarmIRQHandler (RTC_HandleTypeDef *hrtc)
 This function handles Alarm interrupt request.
HAL_StatusTypeDef HAL_RTC_PollForAlarmAEvent (RTC_HandleTypeDef *hrtc, uint32_t Timeout)
 This function handles AlarmA Polling request.
__weak void HAL_RTC_AlarmAEventCallback (RTC_HandleTypeDef *hrtc)
 Alarm A callback.
HAL_StatusTypeDef HAL_RTC_WaitForSynchro (RTC_HandleTypeDef *hrtc)
 Waits until the RTC Time and Date registers (RTC_TR and RTC_DR) are synchronized with RTC APB clock.
HAL_RTCStateTypeDef HAL_RTC_GetState (RTC_HandleTypeDef *hrtc)
 Returns the RTC state.
HAL_StatusTypeDef RTC_EnterInitMode (RTC_HandleTypeDef *hrtc)
 Enters the RTC Initialization mode.
uint8_t RTC_ByteToBcd2 (uint8_t Value)
 Converts a 2 digit decimal to BCD format.
uint8_t RTC_Bcd2ToByte (uint8_t Value)
 Converts from 2 digit BCD to Binary.

Detailed Description

Header file of RTC HAL module.

Author:
MCD Application Team
Attention:

© Copyright (c) 2017 STMicroelectronics. All rights reserved.

This software component is licensed by ST under BSD 3-Clause license, the "License"; You may not use this file except in compliance with the License. You may obtain a copy of the License at: opensource.org/licenses/BSD-3-Clause

Definition in file stm32f4xx_hal_rtc.h.