2015-07-27 20:20:56 -04:00
/**
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* @ file stm32f7xx_hal_rtc_ex . h
* @ author MCD Application Team
2016-12-05 01:04:56 -05:00
* @ version V1 .1 .2
* @ date 23 - September - 2016
2015-07-27 20:20:56 -04:00
* @ brief Header file of RTC HAL Extension module .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* @ attention
*
2016-12-05 01:04:56 -05:00
* < h2 > < center > & copy ; COPYRIGHT ( c ) 2016 STMicroelectronics < / center > < / h2 >
2015-07-27 20:20:56 -04:00
*
* Redistribution and use in source and binary forms , with or without modification ,
* are permitted provided that the following conditions are met :
* 1. Redistributions of source code must retain the above copyright notice ,
* this list of conditions and the following disclaimer .
* 2. Redistributions in binary form must reproduce the above copyright notice ,
* this list of conditions and the following disclaimer in the documentation
* and / or other materials provided with the distribution .
* 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission .
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS " AS IS "
* AND ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL
* DAMAGES ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES ; LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY ,
* OR TORT ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
/* Define to prevent recursive inclusion -------------------------------------*/
# ifndef __STM32F7xx_HAL_RTC_EX_H
# define __STM32F7xx_HAL_RTC_EX_H
# ifdef __cplusplus
extern " C " {
# endif
/* Includes ------------------------------------------------------------------*/
# include "stm32f7xx_hal_def.h"
/** @addtogroup STM32F7xx_HAL_Driver
* @ {
*/
/** @addtogroup RTCEx
* @ {
*/
/* Exported types ------------------------------------------------------------*/
/** @defgroup RTCEx_Exported_Types RTCEx Exported Types
* @ {
*/
/**
* @ brief RTC Tamper structure definition
*/
typedef struct
{
uint32_t Tamper ; /*!< Specifies the Tamper Pin.
This parameter can be a value of @ ref RTCEx_Tamper_Pins_Definitions */
uint32_t Interrupt ; /*!< Specifies the Tamper Interrupt.
This parameter can be a value of @ ref RTCEx_Tamper_Interrupt_Definitions */
uint32_t Trigger ; /*!< Specifies the Tamper Trigger.
This parameter can be a value of @ ref RTCEx_Tamper_Trigger_Definitions */
uint32_t NoErase ; /*!< Specifies the Tamper no erase mode.
This parameter can be a value of @ ref RTCEx_Tamper_EraseBackUp_Definitions */
uint32_t MaskFlag ; /*!< Specifies the Tamper Flag masking.
This parameter can be a value of @ ref RTCEx_Tamper_MaskFlag_Definitions */
uint32_t Filter ; /*!< Specifies the RTC Filter Tamper.
This parameter can be a value of @ ref RTCEx_Tamper_Filter_Definitions */
uint32_t SamplingFrequency ; /*!< Specifies the sampling frequency.
This parameter can be a value of @ ref RTCEx_Tamper_Sampling_Frequencies_Definitions */
uint32_t PrechargeDuration ; /*!< Specifies the Precharge Duration .
This parameter can be a value of @ ref RTCEx_Tamper_Pin_Precharge_Duration_Definitions */
uint32_t TamperPullUp ; /*!< Specifies the Tamper PullUp .
This parameter can be a value of @ ref RTCEx_Tamper_Pull_UP_Definitions */
uint32_t TimeStampOnTamperDetection ; /*!< Specifies the TimeStampOnTamperDetection.
This parameter can be a value of @ ref RTCEx_Tamper_TimeStampOnTamperDetection_Definitions */
} RTC_TamperTypeDef ;
/**
* @ }
*/
/* Exported constants --------------------------------------------------------*/
/** @defgroup RTCEx_Exported_Constants RTCEx Exported Constants
* @ {
*/
/** @defgroup RTCEx_Output_selection_Definitions RTCEx Output selection Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_OUTPUT_DISABLE ((uint32_t)0x00000000U)
# define RTC_OUTPUT_ALARMA ((uint32_t)0x00200000U)
# define RTC_OUTPUT_ALARMB ((uint32_t)0x00400000U)
# define RTC_OUTPUT_WAKEUP ((uint32_t)0x00600000U)
2015-07-27 20:20:56 -04:00
/**
* @ }
*/
/** @defgroup RTCEx_Backup_Registers_Definitions RTC Backup Registers Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_BKP_DR0 ((uint32_t)0x00000000U)
# define RTC_BKP_DR1 ((uint32_t)0x00000001U)
# define RTC_BKP_DR2 ((uint32_t)0x00000002U)
# define RTC_BKP_DR3 ((uint32_t)0x00000003U)
# define RTC_BKP_DR4 ((uint32_t)0x00000004U)
# define RTC_BKP_DR5 ((uint32_t)0x00000005U)
# define RTC_BKP_DR6 ((uint32_t)0x00000006U)
# define RTC_BKP_DR7 ((uint32_t)0x00000007U)
# define RTC_BKP_DR8 ((uint32_t)0x00000008U)
# define RTC_BKP_DR9 ((uint32_t)0x00000009U)
# define RTC_BKP_DR10 ((uint32_t)0x0000000AU)
# define RTC_BKP_DR11 ((uint32_t)0x0000000BU)
# define RTC_BKP_DR12 ((uint32_t)0x0000000CU)
# define RTC_BKP_DR13 ((uint32_t)0x0000000DU)
# define RTC_BKP_DR14 ((uint32_t)0x0000000EU)
# define RTC_BKP_DR15 ((uint32_t)0x0000000FU)
# define RTC_BKP_DR16 ((uint32_t)0x00000010U)
# define RTC_BKP_DR17 ((uint32_t)0x00000011U)
# define RTC_BKP_DR18 ((uint32_t)0x00000012U)
# define RTC_BKP_DR19 ((uint32_t)0x00000013U)
# define RTC_BKP_DR20 ((uint32_t)0x00000014U)
# define RTC_BKP_DR21 ((uint32_t)0x00000015U)
# define RTC_BKP_DR22 ((uint32_t)0x00000016U)
# define RTC_BKP_DR23 ((uint32_t)0x00000017U)
# define RTC_BKP_DR24 ((uint32_t)0x00000018U)
# define RTC_BKP_DR25 ((uint32_t)0x00000019U)
# define RTC_BKP_DR26 ((uint32_t)0x0000001AU)
# define RTC_BKP_DR27 ((uint32_t)0x0000001BU)
# define RTC_BKP_DR28 ((uint32_t)0x0000001CU)
# define RTC_BKP_DR29 ((uint32_t)0x0000001DU)
# define RTC_BKP_DR30 ((uint32_t)0x0000001EU)
# define RTC_BKP_DR31 ((uint32_t)0x0000001FU)
2015-07-27 20:20:56 -04:00
/**
* @ }
*/
/** @defgroup RTCEx_Time_Stamp_Edges_definitions RTCEx Time Stamp Edges definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_TIMESTAMPEDGE_RISING ((uint32_t)0x00000000U)
# define RTC_TIMESTAMPEDGE_FALLING ((uint32_t)0x00000008U)
2015-07-27 20:20:56 -04:00
/**
* @ }
*/
/** @defgroup RTCEx_Tamper_Pins_Definitions RTCEx Tamper Pins Definitions
* @ {
*/
# define RTC_TAMPER_1 RTC_TAMPCR_TAMP1E
# define RTC_TAMPER_2 RTC_TAMPCR_TAMP2E
# define RTC_TAMPER_3 RTC_TAMPCR_TAMP3E
/**
* @ }
*/
/** @defgroup RTCEx_Tamper_Interrupt_Definitions RTCEx Tamper Interrupt Definitions
* @ {
*/
# define RTC_TAMPER1_INTERRUPT RTC_TAMPCR_TAMP1IE
# define RTC_TAMPER2_INTERRUPT RTC_TAMPCR_TAMP2IE
# define RTC_TAMPER3_INTERRUPT RTC_TAMPCR_TAMP3IE
# define RTC_ALL_TAMPER_INTERRUPT RTC_TAMPCR_TAMPIE
/**
* @ }
*/
/** @defgroup RTCEx_TimeStamp_Pin_Selection RTCEx TimeStamp Pin Selection
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_TIMESTAMPPIN_DEFAULT ((uint32_t)0x00000000U)
# define RTC_TIMESTAMPPIN_POS1 ((uint32_t)0x00000002U)
# define RTC_TIMESTAMPPIN_POS2 ((uint32_t)0x00000004U)
2015-07-27 20:20:56 -04:00
/**
* @ }
*/
/** @defgroup RTCEx_Tamper_Trigger_Definitions RTCEx Tamper Trigger Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERTRIGGER_RISINGEDGE ((uint32_t)0x00000000U)
# define RTC_TAMPERTRIGGER_FALLINGEDGE ((uint32_t)0x00000002U)
2015-07-27 20:20:56 -04:00
# define RTC_TAMPERTRIGGER_LOWLEVEL RTC_TAMPERTRIGGER_RISINGEDGE
# define RTC_TAMPERTRIGGER_HIGHLEVEL RTC_TAMPERTRIGGER_FALLINGEDGE
/**
* @ }
*/
/** @defgroup RTCEx_Tamper_EraseBackUp_Definitions RTCEx Tamper EraseBackUp Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_TAMPER_ERASE_BACKUP_ENABLE ((uint32_t)0x00000000U)
# define RTC_TAMPER_ERASE_BACKUP_DISABLE ((uint32_t)0x00020000U)
2015-07-27 20:20:56 -04:00
/**
* @ }
*/
/** @defgroup RTCEx_Tamper_MaskFlag_Definitions RTCEx Tamper MaskFlag Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERMASK_FLAG_DISABLE ((uint32_t)0x00000000U)
# define RTC_TAMPERMASK_FLAG_ENABLE ((uint32_t)0x00040000U)
2015-07-27 20:20:56 -04:00
/**
* @ }
*/
/** @defgroup RTCEx_Tamper_Filter_Definitions RTCEx Tamper Filter Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERFILTER_DISABLE ((uint32_t)0x00000000U) /*!< Tamper filter is disabled */
2015-07-27 20:20:56 -04:00
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERFILTER_2SAMPLE ((uint32_t)0x00000800U) / *!< Tamper is activated after 2
2015-07-27 20:20:56 -04:00
consecutive samples at the active level */
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERFILTER_4SAMPLE ((uint32_t)0x00001000U) / *!< Tamper is activated after 4
2015-07-27 20:20:56 -04:00
consecutive samples at the active level */
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERFILTER_8SAMPLE ((uint32_t)0x00001800U) / *!< Tamper is activated after 8
2015-07-27 20:20:56 -04:00
consecutive samples at the active leve . */
/**
* @ }
*/
/** @defgroup RTCEx_Tamper_Sampling_Frequencies_Definitions RTCEx Tamper Sampling Frequencies Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768 ((uint32_t)0x00000000U) / *!< Each of the tamper inputs are sampled
2015-07-27 20:20:56 -04:00
with a frequency = RTCCLK / 32768 */
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384 ((uint32_t)0x00000100U) / *!< Each of the tamper inputs are sampled
2015-07-27 20:20:56 -04:00
with a frequency = RTCCLK / 16384 */
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192 ((uint32_t)0x00000200U) / *!< Each of the tamper inputs are sampled
2015-07-27 20:20:56 -04:00
with a frequency = RTCCLK / 8192 */
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096 ((uint32_t)0x00000300U) / *!< Each of the tamper inputs are sampled
2015-07-27 20:20:56 -04:00
with a frequency = RTCCLK / 4096 */
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048 ((uint32_t)0x00000400U) / *!< Each of the tamper inputs are sampled
2015-07-27 20:20:56 -04:00
with a frequency = RTCCLK / 2048 */
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024 ((uint32_t)0x00000500U) / *!< Each of the tamper inputs are sampled
2015-07-27 20:20:56 -04:00
with a frequency = RTCCLK / 1024 */
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512 ((uint32_t)0x00000600U) / *!< Each of the tamper inputs are sampled
2015-07-27 20:20:56 -04:00
with a frequency = RTCCLK / 512 */
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256 ((uint32_t)0x00000700U) / *!< Each of the tamper inputs are sampled
2015-07-27 20:20:56 -04:00
with a frequency = RTCCLK / 256 */
/**
* @ }
*/
/** @defgroup RTCEx_Tamper_Pin_Precharge_Duration_Definitions RTCEx Tamper Pin Precharge Duration Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERPRECHARGEDURATION_1RTCCLK ((uint32_t)0x00000000U) / *!< Tamper pins are pre-charged before
2015-07-27 20:20:56 -04:00
sampling during 1 RTCCLK cycle */
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERPRECHARGEDURATION_2RTCCLK ((uint32_t)0x00002000U) / *!< Tamper pins are pre-charged before
2015-07-27 20:20:56 -04:00
sampling during 2 RTCCLK cycles */
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERPRECHARGEDURATION_4RTCCLK ((uint32_t)0x00004000U) / *!< Tamper pins are pre-charged before
2015-07-27 20:20:56 -04:00
sampling during 4 RTCCLK cycles */
2016-12-05 01:04:56 -05:00
# define RTC_TAMPERPRECHARGEDURATION_8RTCCLK ((uint32_t)0x00006000U) / *!< Tamper pins are pre-charged before
2015-07-27 20:20:56 -04:00
sampling during 8 RTCCLK cycles */
/**
* @ }
*/
/** @defgroup RTCEx_Tamper_TimeStampOnTamperDetection_Definitions RTCEx Tamper TimeStampOnTamperDetection Definitions
* @ {
*/
# define RTC_TIMESTAMPONTAMPERDETECTION_ENABLE ((uint32_t)RTC_TAMPCR_TAMPTS) /*!< TimeStamp on Tamper Detection event saved */
2016-12-05 01:04:56 -05:00
# define RTC_TIMESTAMPONTAMPERDETECTION_DISABLE ((uint32_t)0x00000000U) /*!< TimeStamp on Tamper Detection event is not saved */
2015-07-27 20:20:56 -04:00
/**
* @ }
*/
/** @defgroup RTCEx_Tamper_Pull_UP_Definitions RTCEx Tamper Pull UP Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_TAMPER_PULLUP_ENABLE ((uint32_t)0x00000000U) /*!< TimeStamp on Tamper Detection event saved */
2015-07-27 20:20:56 -04:00
# define RTC_TAMPER_PULLUP_DISABLE ((uint32_t)RTC_TAMPCR_TAMPPUDIS) /*!< TimeStamp on Tamper Detection event is not saved */
/**
* @ }
*/
/** @defgroup RTCEx_Wakeup_Timer_Definitions RTCEx Wakeup Timer Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_WAKEUPCLOCK_RTCCLK_DIV16 ((uint32_t)0x00000000U)
# define RTC_WAKEUPCLOCK_RTCCLK_DIV8 ((uint32_t)0x00000001U)
# define RTC_WAKEUPCLOCK_RTCCLK_DIV4 ((uint32_t)0x00000002U)
# define RTC_WAKEUPCLOCK_RTCCLK_DIV2 ((uint32_t)0x00000003U)
# define RTC_WAKEUPCLOCK_CK_SPRE_16BITS ((uint32_t)0x00000004U)
# define RTC_WAKEUPCLOCK_CK_SPRE_17BITS ((uint32_t)0x00000006U)
2015-07-27 20:20:56 -04:00
/**
* @ }
*/
/** @defgroup RTCEx_Smooth_calib_period_Definitions RTCEx Smooth calib period Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_SMOOTHCALIB_PERIOD_32SEC ((uint32_t)0x00000000U) / *!< If RTCCLK = 32768 Hz, Smooth calibration
2015-07-27 20:20:56 -04:00
period is 32 s , else 2 exp20 RTCCLK seconds */
2016-12-05 01:04:56 -05:00
# define RTC_SMOOTHCALIB_PERIOD_16SEC ((uint32_t)0x00002000U) / *!< If RTCCLK = 32768 Hz, Smooth calibration
2015-07-27 20:20:56 -04:00
period is 16 s , else 2 exp19 RTCCLK seconds */
2016-12-05 01:04:56 -05:00
# define RTC_SMOOTHCALIB_PERIOD_8SEC ((uint32_t)0x00004000U) / *!< If RTCCLK = 32768 Hz, Smooth calibration
2015-07-27 20:20:56 -04:00
period is 8 s , else 2 exp18 RTCCLK seconds */
/**
* @ }
*/
/** @defgroup RTCEx_Smooth_calib_Plus_pulses_Definitions RTCEx Smooth calib Plus pulses Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_SMOOTHCALIB_PLUSPULSES_SET ((uint32_t)0x00008000U) / *!< The number of RTCCLK pulses added
2015-07-27 20:20:56 -04:00
during a X - second window = Y - CALM [ 8 : 0 ]
with Y = 512 , 256 , 128 when X = 32 , 16 , 8 */
2016-12-05 01:04:56 -05:00
# define RTC_SMOOTHCALIB_PLUSPULSES_RESET ((uint32_t)0x00000000U) / *!< The number of RTCCLK pulses subbstited
2015-07-27 20:20:56 -04:00
during a 32 - second window = CALM [ 8 : 0 ] */
/**
* @ }
*/
/** @defgroup RTCEx_Add_1_Second_Parameter_Definitions RTCEx Add 1 Second Parameter Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_SHIFTADD1S_RESET ((uint32_t)0x00000000U)
# define RTC_SHIFTADD1S_SET ((uint32_t)0x80000000U)
2015-07-27 20:20:56 -04:00
/**
* @ }
*/
/** @defgroup RTCEx_Calib_Output_selection_Definitions RTCEx Calib Output selection Definitions
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_CALIBOUTPUT_512HZ ((uint32_t)0x00000000U)
# define RTC_CALIBOUTPUT_1HZ ((uint32_t)0x00080000U)
2015-07-27 20:20:56 -04:00
/**
* @ }
*/
/**
* @ }
*/
/* Exported macros -----------------------------------------------------------*/
/** @defgroup RTCEx_Exported_Macros RTCEx Exported Macros
* @ {
*/
/**
* @ brief Enable the RTC WakeUp Timer peripheral .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_WAKEUPTIMER_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_WUTE))
/**
* @ brief Disable the RTC WakeUp Timer peripheral .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_WAKEUPTIMER_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_WUTE))
/**
* @ brief Enable the RTC WakeUpTimer interrupt .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __INTERRUPT__ : specifies the RTC WakeUpTimer interrupt sources to be enabled or disabled .
* This parameter can be :
* @ arg RTC_IT_WUT : WakeUpTimer interrupt
* @ retval None
*/
# define __HAL_RTC_WAKEUPTIMER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
/**
* @ brief Disable the RTC WakeUpTimer interrupt .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __INTERRUPT__ : specifies the RTC WakeUpTimer interrupt sources to be enabled or disabled .
* This parameter can be :
* @ arg RTC_IT_WUT : WakeUpTimer interrupt
* @ retval None
*/
# define __HAL_RTC_WAKEUPTIMER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
/**
* @ brief Check whether the specified RTC WakeUpTimer interrupt has occurred or not .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __INTERRUPT__ : specifies the RTC WakeUpTimer interrupt sources to check .
* This parameter can be :
* @ arg RTC_IT_WUT : WakeUpTimer interrupt
* @ retval None
*/
# define __HAL_RTC_WAKEUPTIMER_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 4)) != RESET) ? SET : RESET)
/**
* @ brief Check whether the specified RTC Wake Up timer interrupt has been enabled or not .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __INTERRUPT__ : specifies the RTC Wake Up timer interrupt sources to check .
* This parameter can be :
* @ arg RTC_IT_WUT : WakeUpTimer interrupt
* @ retval None
*/
# define __HAL_RTC_WAKEUPTIMER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
/**
* @ brief Get the selected RTC WakeUpTimer ' s flag status .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __FLAG__ : specifies the RTC WakeUpTimer Flag is pending or not .
* This parameter can be :
* @ arg RTC_FLAG_WUTF
* @ arg RTC_FLAG_WUTWF
* @ retval None
*/
# define __HAL_RTC_WAKEUPTIMER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET) ? SET : RESET)
/**
* @ brief Clear the RTC Wake Up timer ' s pending flags .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __FLAG__ : specifies the RTC WakeUpTimer Flag to clear .
* This parameter can be :
* @ arg RTC_FLAG_WUTF
* @ retval None
*/
# define __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
/**
* @ brief Enable the RTC Tamper1 input detection .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_TAMPER1_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR |= (RTC_TAMPCR_TAMP1E))
/**
* @ brief Disable the RTC Tamper1 input detection .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_TAMPER1_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TAMPCR_TAMP1E))
/**
* @ brief Enable the RTC Tamper2 input detection .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_TAMPER2_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR |= (RTC_TAMPCR_TAMP2E))
/**
* @ brief Disable the RTC Tamper2 input detection .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_TAMPER2_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TAMPCR_TAMP2E))
/**
* @ brief Enable the RTC Tamper3 input detection .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_TAMPER3_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR |= (RTC_TAMPCR_TAMP3E))
/**
* @ brief Disable the RTC Tamper3 input detection .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_TAMPER3_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TAMPCR_TAMP3E))
/**
* @ brief Check whether the specified RTC Tamper interrupt has occurred or not .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __INTERRUPT__ : specifies the RTC Tamper interrupt to check .
* This parameter can be :
* @ arg RTC_IT_TAMP : All tampers interrupts
* @ arg RTC_IT_TAMP1 : Tamper1 interrupt
* @ arg RTC_IT_TAMP2 : Tamper2 interrupt
* @ arg RTC_IT_TAMP3 : Tamper3 interrupt
* @ retval None
*/
# define __HAL_RTC_TAMPER_GET_IT(__HANDLE__, __INTERRUPT__) (((__INTERRUPT__) == RTC_IT_TAMP1) ? (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 3)) != RESET) ? SET : RESET) : \
( ( __INTERRUPT__ ) = = RTC_IT_TAMP2 ) ? ( ( ( ( ( __HANDLE__ ) - > Instance - > ISR ) & ( ( __INTERRUPT__ ) > > 5 ) ) ! = RESET ) ? SET : RESET ) : \
( ( ( ( ( __HANDLE__ ) - > Instance - > ISR ) & ( ( __INTERRUPT__ ) > > 7 ) ) ! = RESET ) ? SET : RESET ) )
/**
* @ brief Check whether the specified RTC Tamper interrupt has been enabled or not .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __INTERRUPT__ : specifies the RTC Tamper interrupt source to check .
* This parameter can be :
* @ arg RTC_IT_TAMP : All tampers interrupts
* @ arg RTC_IT_TAMP1 : Tamper1 interrupt
* @ arg RTC_IT_TAMP2 : Tamper2 interrupt
* @ arg RTC_IT_TAMP3 : Tamper3 interrupt
* @ retval None
*/
# define __HAL_RTC_TAMPER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->TAMPCR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
/**
* @ brief Get the selected RTC Tamper ' s flag status .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __FLAG__ : specifies the RTC Tamper Flag is pending or not .
* This parameter can be :
* @ arg RTC_FLAG_TAMP1F : Tamper1 flag
* @ arg RTC_FLAG_TAMP2F : Tamper2 flag
* @ arg RTC_FLAG_TAMP3F : Tamper3 flag
* @ retval None
*/
# define __HAL_RTC_TAMPER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET) ? SET : RESET)
/**
* @ brief Clear the RTC Tamper ' s pending flags .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __FLAG__ : specifies the RTC Tamper Flag sources to clear .
* This parameter can be :
* @ arg RTC_FLAG_TAMP1F : Tamper1 flag
* @ arg RTC_FLAG_TAMP2F : Tamper2 flag
* @ arg RTC_FLAG_TAMP3F : Tamper3 flag
* @ retval None
*/
# define __HAL_RTC_TAMPER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
/**
* @ brief Enable the RTC TimeStamp peripheral .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_TIMESTAMP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_TSE))
/**
* @ brief Disable the RTC TimeStamp peripheral .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_TIMESTAMP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_TSE))
/**
* @ brief Enable the RTC TimeStamp interrupt .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __INTERRUPT__ : specifies the RTC TimeStamp interrupt sources to be enabled or disabled .
* This parameter can be :
* @ arg RTC_IT_TS : TimeStamp interrupt
* @ retval None
*/
# define __HAL_RTC_TIMESTAMP_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
/**
* @ brief Disable the RTC TimeStamp interrupt .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __INTERRUPT__ : specifies the RTC TimeStamp interrupt sources to be enabled or disabled .
* This parameter can be :
* @ arg RTC_IT_TS : TimeStamp interrupt
* @ retval None
*/
# define __HAL_RTC_TIMESTAMP_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
/**
* @ brief Check whether the specified RTC TimeStamp interrupt has occurred or not .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __INTERRUPT__ : specifies the RTC TimeStamp interrupt sources to check .
* This parameter can be :
* @ arg RTC_IT_TS : TimeStamp interrupt
* @ retval None
*/
# define __HAL_RTC_TIMESTAMP_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 4)) != RESET) ? SET : RESET)
/**
* @ brief Check whether the specified RTC Time Stamp interrupt has been enabled or not .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __INTERRUPT__ : specifies the RTC Time Stamp interrupt source to check .
* This parameter can be :
* @ arg RTC_IT_TS : TimeStamp interrupt
* @ retval None
*/
# define __HAL_RTC_TIMESTAMP_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
/**
* @ brief Get the selected RTC TimeStamp ' s flag status .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __FLAG__ : specifies the RTC TimeStamp Flag is pending or not .
* This parameter can be :
* @ arg RTC_FLAG_TSF
* @ arg RTC_FLAG_TSOVF
* @ retval None
*/
# define __HAL_RTC_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET) ? SET : RESET)
/**
* @ brief Clear the RTC Time Stamp ' s pending flags .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __FLAG__ : specifies the RTC Alarm Flag sources to clear .
* This parameter can be :
* @ arg RTC_FLAG_TSF
* @ arg RTC_FLAG_TSOVF
* @ retval None
*/
# define __HAL_RTC_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
/**
* @ brief Enable the RTC internal TimeStamp peripheral .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_INTERNAL_TIMESTAMP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_ITSE))
/**
* @ brief Disable the RTC internal TimeStamp peripheral .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_INTERNAL_TIMESTAMP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_ITSE))
/**
* @ brief Get the selected RTC Internal Time Stamp ' s flag status .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __FLAG__ : specifies the RTC Internal Time Stamp Flag is pending or not .
* This parameter can be :
* @ arg RTC_FLAG_ITSF
* @ retval None
*/
# define __HAL_RTC_INTERNAL_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET) ? SET : RESET)
/**
* @ brief Clear the RTC Internal Time Stamp ' s pending flags .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __FLAG__ : specifies the RTC Internal Time Stamp Flag source to clear .
* This parameter can be :
* @ arg RTC_FLAG_ITSF
* @ retval None
*/
# define __HAL_RTC_INTERNAL_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~(((__FLAG__) | RTC_ISR_INIT)& 0x0003FFFF)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
/**
* @ brief Enable the RTC calibration output .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_CALIBRATION_OUTPUT_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_COE))
/**
* @ brief Disable the calibration output .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_CALIBRATION_OUTPUT_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_COE))
/**
* @ brief Enable the clock reference detection .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_CLOCKREF_DETECTION_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_REFCKON))
/**
* @ brief Disable the clock reference detection .
* @ param __HANDLE__ : specifies the RTC handle .
* @ retval None
*/
# define __HAL_RTC_CLOCKREF_DETECTION_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_REFCKON))
/**
* @ brief Get the selected RTC shift operation ' s flag status .
* @ param __HANDLE__ : specifies the RTC handle .
* @ param __FLAG__ : specifies the RTC shift operation Flag is pending or not .
* This parameter can be :
* @ arg RTC_FLAG_SHPF
* @ retval None
*/
# define __HAL_RTC_SHIFT_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET) ? SET : RESET)
/**
* @ brief Enable interrupt on the RTC WakeUp Timer associated Exti line .
* @ retval None
*/
# define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT() (EXTI->IMR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
/**
* @ brief Disable interrupt on the RTC WakeUp Timer associated Exti line .
* @ retval None
*/
# define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT() (EXTI->IMR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
/**
* @ brief Enable event on the RTC WakeUp Timer associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_EVENT() (EXTI->EMR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
/**
* @ brief Disable event on the RTC WakeUp Timer associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_EVENT() (EXTI->EMR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
/**
* @ brief Enable falling edge trigger on the RTC WakeUp Timer associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
/**
* @ brief Disable falling edge trigger on the RTC WakeUp Timer associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
/**
* @ brief Enable rising edge trigger on the RTC WakeUp Timer associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
/**
* @ brief Disable rising edge trigger on the RTC WakeUp Timer associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
/**
* @ brief Enable rising & falling edge trigger on the RTC WakeUp Timer associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_EDGE() __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE();__HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE();
/**
* @ brief Disable rising & falling edge trigger on the RTC WakeUp Timer associated Exti line .
* This parameter can be :
* @ retval None .
*/
# define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_EDGE() __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE();__HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE();
/**
* @ brief Check whether the RTC WakeUp Timer associated Exti line interrupt flag is set or not .
* @ retval Line Status .
*/
# define __HAL_RTC_WAKEUPTIMER_EXTI_GET_FLAG() (EXTI->PR & RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
/**
* @ brief Clear the RTC WakeUp Timer associated Exti line flag .
* @ retval None .
*/
# define __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG() (EXTI->PR = RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
/**
* @ brief Generate a Software interrupt on the RTC WakeUp Timer associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_WAKEUPTIMER_EXTI_GENERATE_SWIT() (EXTI->SWIER |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
/**
* @ brief Enable interrupt on the RTC Tamper and Timestamp associated Exti line .
* @ retval None
*/
# define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT() (EXTI->IMR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
/**
* @ brief Disable interrupt on the RTC Tamper and Timestamp associated Exti line .
* @ retval None
*/
# define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_IT() (EXTI->IMR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
/**
* @ brief Enable event on the RTC Tamper and Timestamp associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_EVENT() (EXTI->EMR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
/**
* @ brief Disable event on the RTC Tamper and Timestamp associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_EVENT() (EXTI->EMR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
/**
* @ brief Enable falling edge trigger on the RTC Tamper and Timestamp associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
/**
* @ brief Disable falling edge trigger on the RTC Tamper and Timestamp associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
/**
* @ brief Enable rising edge trigger on the RTC Tamper and Timestamp associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
/**
* @ brief Disable rising edge trigger on the RTC Tamper and Timestamp associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
/**
* @ brief Enable rising & falling edge trigger on the RTC Tamper and Timestamp associated Exti line .
* @ retval None .
*/
# define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_FALLING_EDGE() __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();__HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE();
/**
* @ brief Disable rising & falling edge trigger on the RTC Tamper and Timestamp associated Exti line .
* This parameter can be :
* @ retval None .
*/
# define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_FALLING_EDGE() __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE();__HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE();
/**
* @ brief Check whether the RTC Tamper and Timestamp associated Exti line interrupt flag is set or not .
* @ retval Line Status .
*/
# define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG() (EXTI->PR & RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
/**
* @ brief Clear the RTC Tamper and Timestamp associated Exti line flag .
* @ retval None .
*/
# define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG() (EXTI->PR = RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
/**
* @ brief Generate a Software interrupt on the RTC Tamper and Timestamp associated Exti line
* @ retval None .
*/
# define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GENERATE_SWIT() (EXTI->SWIER |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
/**
* @ }
*/
/* Exported functions --------------------------------------------------------*/
/** @defgroup RTCEx_Exported_Functions RTCEx Exported Functions
* @ {
*/
/** @addtogroup RTCEx_Exported_Functions_Group1
* @ {
*/
/* RTC TimeStamp and Tamper functions *****************************************/
HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp ( RTC_HandleTypeDef * hrtc , uint32_t TimeStampEdge , uint32_t RTC_TimeStampPin ) ;
HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT ( RTC_HandleTypeDef * hrtc , uint32_t TimeStampEdge , uint32_t RTC_TimeStampPin ) ;
HAL_StatusTypeDef HAL_RTCEx_DeactivateTimeStamp ( RTC_HandleTypeDef * hrtc ) ;
HAL_StatusTypeDef HAL_RTCEx_SetInternalTimeStamp ( RTC_HandleTypeDef * hrtc ) ;
HAL_StatusTypeDef HAL_RTCEx_DeactivateInternalTimeStamp ( RTC_HandleTypeDef * hrtc ) ;
HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp ( RTC_HandleTypeDef * hrtc , RTC_TimeTypeDef * sTimeStamp , RTC_DateTypeDef * sTimeStampDate , uint32_t Format ) ;
HAL_StatusTypeDef HAL_RTCEx_SetTamper ( RTC_HandleTypeDef * hrtc , RTC_TamperTypeDef * sTamper ) ;
HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT ( RTC_HandleTypeDef * hrtc , RTC_TamperTypeDef * sTamper ) ;
HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper ( RTC_HandleTypeDef * hrtc , uint32_t Tamper ) ;
void HAL_RTCEx_TamperTimeStampIRQHandler ( RTC_HandleTypeDef * hrtc ) ;
void HAL_RTCEx_Tamper1EventCallback ( RTC_HandleTypeDef * hrtc ) ;
void HAL_RTCEx_Tamper2EventCallback ( RTC_HandleTypeDef * hrtc ) ;
void HAL_RTCEx_Tamper3EventCallback ( RTC_HandleTypeDef * hrtc ) ;
void HAL_RTCEx_TimeStampEventCallback ( RTC_HandleTypeDef * hrtc ) ;
HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent ( RTC_HandleTypeDef * hrtc , uint32_t Timeout ) ;
HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event ( RTC_HandleTypeDef * hrtc , uint32_t Timeout ) ;
HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event ( RTC_HandleTypeDef * hrtc , uint32_t Timeout ) ;
HAL_StatusTypeDef HAL_RTCEx_PollForTamper3Event ( RTC_HandleTypeDef * hrtc , uint32_t Timeout ) ;
/**
* @ }
*/
/** @addtogroup RTCEx_Exported_Functions_Group2
* @ {
*/
/* RTC Wake-up functions ******************************************************/
HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer ( RTC_HandleTypeDef * hrtc , uint32_t WakeUpCounter , uint32_t WakeUpClock ) ;
HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT ( RTC_HandleTypeDef * hrtc , uint32_t WakeUpCounter , uint32_t WakeUpClock ) ;
uint32_t HAL_RTCEx_DeactivateWakeUpTimer ( RTC_HandleTypeDef * hrtc ) ;
uint32_t HAL_RTCEx_GetWakeUpTimer ( RTC_HandleTypeDef * hrtc ) ;
void HAL_RTCEx_WakeUpTimerIRQHandler ( RTC_HandleTypeDef * hrtc ) ;
void HAL_RTCEx_WakeUpTimerEventCallback ( RTC_HandleTypeDef * hrtc ) ;
HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent ( RTC_HandleTypeDef * hrtc , uint32_t Timeout ) ;
/**
* @ }
*/
/** @addtogroup RTCEx_Exported_Functions_Group3
* @ {
*/
/* Extension Control functions ************************************************/
void HAL_RTCEx_BKUPWrite ( RTC_HandleTypeDef * hrtc , uint32_t BackupRegister , uint32_t Data ) ;
uint32_t HAL_RTCEx_BKUPRead ( RTC_HandleTypeDef * hrtc , uint32_t BackupRegister ) ;
HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib ( RTC_HandleTypeDef * hrtc , uint32_t SmoothCalibPeriod , uint32_t SmoothCalibPlusPulses , uint32_t SmouthCalibMinusPulsesValue ) ;
HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift ( RTC_HandleTypeDef * hrtc , uint32_t ShiftAdd1S , uint32_t ShiftSubFS ) ;
HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut ( RTC_HandleTypeDef * hrtc , uint32_t CalibOutput ) ;
HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut ( RTC_HandleTypeDef * hrtc ) ;
HAL_StatusTypeDef HAL_RTCEx_SetRefClock ( RTC_HandleTypeDef * hrtc ) ;
HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock ( RTC_HandleTypeDef * hrtc ) ;
HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow ( RTC_HandleTypeDef * hrtc ) ;
HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow ( RTC_HandleTypeDef * hrtc ) ;
/**
* @ }
*/
/** @addtogroup RTCEx_Exported_Functions_Group4
* @ {
*/
/* Extension RTC features functions *******************************************/
void HAL_RTCEx_AlarmBEventCallback ( RTC_HandleTypeDef * hrtc ) ;
HAL_StatusTypeDef HAL_RTCEx_PollForAlarmBEvent ( RTC_HandleTypeDef * hrtc , uint32_t Timeout ) ;
/**
* @ }
*/
/**
* @ }
*/
/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup RTCEx_Private_Constants RTCEx Private Constants
* @ {
*/
2016-12-05 01:04:56 -05:00
# define RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT ((uint32_t)EXTI_IMR_IM21) /*!< External interrupt line 21 Connected to the RTC Tamper and Time Stamp events */
# define RTC_EXTI_LINE_WAKEUPTIMER_EVENT ((uint32_t)EXTI_IMR_IM22) /*!< External interrupt line 22 Connected to the RTC Wake-up event */
2015-07-27 20:20:56 -04:00
/**
* @ }
*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup RTCEx_Private_Constants RTCEx Private Constants
* @ {
*/
/* Masks Definition */
# define RTC_TAMPCR_TAMPXE ((uint32_t) (RTC_TAMPCR_TAMP3E | RTC_TAMPCR_TAMP2E | RTC_TAMPCR_TAMP1E))
2016-12-05 01:04:56 -05:00
# define RTC_TAMPCR_TAMPXIE ((uint32_t) (RTC_TAMPER1_INTERRUPT | RTC_TAMPER2_INTERRUPT | RTC_TAMPER3_INTERRUPT | RTC_ALL_TAMPER_INTERRUPT))
2015-07-27 20:20:56 -04:00
/**
* @ }
*/
/* Private macros ------------------------------------------------------------*/
/** @defgroup RTCEx_Private_Macros RTCEx Private Macros
* @ {
*/
/** @defgroup RTCEx_IS_RTC_Definitions Private macros to check input parameters
* @ {
*/
# define IS_RTC_OUTPUT(__OUTPUT__) (((__OUTPUT__) == RTC_OUTPUT_DISABLE) || \
( ( __OUTPUT__ ) = = RTC_OUTPUT_ALARMA ) | | \
( ( __OUTPUT__ ) = = RTC_OUTPUT_ALARMB ) | | \
( ( __OUTPUT__ ) = = RTC_OUTPUT_WAKEUP ) )
# define IS_RTC_BKP(__BKP__) ((__BKP__) < (uint32_t) RTC_BKP_NUMBER)
# define IS_TIMESTAMP_EDGE(__EDGE__) (((__EDGE__) == RTC_TIMESTAMPEDGE_RISING) || \
( ( __EDGE__ ) = = RTC_TIMESTAMPEDGE_FALLING ) )
2016-12-05 01:04:56 -05:00
# define IS_RTC_TAMPER(__TAMPER__) ((((__TAMPER__) & ((uint32_t)(0xFFFFFFFFU ^ RTC_TAMPCR_TAMPXE))) == 0x00U) && ((__TAMPER__) != (uint32_t)RESET))
2015-07-27 20:20:56 -04:00
2016-12-05 01:04:56 -05:00
# define IS_RTC_TAMPER_INTERRUPT(__INTERRUPT__) ((((__INTERRUPT__) & (uint32_t)(0xFFFFFFFFU ^ RTC_TAMPCR_TAMPXIE)) == 0x00U) && ((__INTERRUPT__) != (uint32_t)RESET))
2015-07-27 20:20:56 -04:00
# define IS_RTC_TIMESTAMP_PIN(__PIN__) (((__PIN__) == RTC_TIMESTAMPPIN_DEFAULT) || \
( ( __PIN__ ) = = RTC_TIMESTAMPPIN_POS1 ) | | \
( ( __PIN__ ) = = RTC_TIMESTAMPPIN_POS2 ) )
# define IS_RTC_TAMPER_TRIGGER(__TRIGGER__) (((__TRIGGER__) == RTC_TAMPERTRIGGER_RISINGEDGE) || \
( ( __TRIGGER__ ) = = RTC_TAMPERTRIGGER_FALLINGEDGE ) | | \
( ( __TRIGGER__ ) = = RTC_TAMPERTRIGGER_LOWLEVEL ) | | \
( ( __TRIGGER__ ) = = RTC_TAMPERTRIGGER_HIGHLEVEL ) )
# define IS_RTC_TAMPER_ERASE_MODE(__MODE__) (((__MODE__) == RTC_TAMPER_ERASE_BACKUP_ENABLE) || \
( ( __MODE__ ) = = RTC_TAMPER_ERASE_BACKUP_DISABLE ) )
# define IS_RTC_TAMPER_MASKFLAG_STATE(__STATE__) (((__STATE__) == RTC_TAMPERMASK_FLAG_ENABLE) || \
( ( __STATE__ ) = = RTC_TAMPERMASK_FLAG_DISABLE ) )
# define IS_RTC_TAMPER_FILTER(__FILTER__) (((__FILTER__) == RTC_TAMPERFILTER_DISABLE) || \
( ( __FILTER__ ) = = RTC_TAMPERFILTER_2SAMPLE ) | | \
( ( __FILTER__ ) = = RTC_TAMPERFILTER_4SAMPLE ) | | \
( ( __FILTER__ ) = = RTC_TAMPERFILTER_8SAMPLE ) )
# define IS_RTC_TAMPER_SAMPLING_FREQ(__FREQ__) (((__FREQ__) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768)|| \
( ( __FREQ__ ) = = RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384 ) | | \
( ( __FREQ__ ) = = RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192 ) | | \
( ( __FREQ__ ) = = RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096 ) | | \
( ( __FREQ__ ) = = RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048 ) | | \
( ( __FREQ__ ) = = RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024 ) | | \
( ( __FREQ__ ) = = RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512 ) | | \
( ( __FREQ__ ) = = RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256 ) )
# define IS_RTC_TAMPER_PRECHARGE_DURATION(__DURATION__) (((__DURATION__) == RTC_TAMPERPRECHARGEDURATION_1RTCCLK) || \
( ( __DURATION__ ) = = RTC_TAMPERPRECHARGEDURATION_2RTCCLK ) | | \
( ( __DURATION__ ) = = RTC_TAMPERPRECHARGEDURATION_4RTCCLK ) | | \
( ( __DURATION__ ) = = RTC_TAMPERPRECHARGEDURATION_8RTCCLK ) )
# define IS_RTC_TAMPER_TIMESTAMPONTAMPER_DETECTION(__DETECTION__) (((__DETECTION__) == RTC_TIMESTAMPONTAMPERDETECTION_ENABLE) || \
( ( __DETECTION__ ) = = RTC_TIMESTAMPONTAMPERDETECTION_DISABLE ) )
# define IS_RTC_TAMPER_PULLUP_STATE(__STATE__) (((__STATE__) == RTC_TAMPER_PULLUP_ENABLE) || \
( ( __STATE__ ) = = RTC_TAMPER_PULLUP_DISABLE ) )
# define IS_RTC_WAKEUP_CLOCK(__CLOCK__) (((__CLOCK__) == RTC_WAKEUPCLOCK_RTCCLK_DIV16) || \
( ( __CLOCK__ ) = = RTC_WAKEUPCLOCK_RTCCLK_DIV8 ) | | \
( ( __CLOCK__ ) = = RTC_WAKEUPCLOCK_RTCCLK_DIV4 ) | | \
( ( __CLOCK__ ) = = RTC_WAKEUPCLOCK_RTCCLK_DIV2 ) | | \
( ( __CLOCK__ ) = = RTC_WAKEUPCLOCK_CK_SPRE_16BITS ) | | \
( ( __CLOCK__ ) = = RTC_WAKEUPCLOCK_CK_SPRE_17BITS ) )
# define IS_RTC_WAKEUP_COUNTER(__COUNTER__) ((__COUNTER__) <= 0xFFFF)
# define IS_RTC_SMOOTH_CALIB_PERIOD(__PERIOD__) (((__PERIOD__) == RTC_SMOOTHCALIB_PERIOD_32SEC) || \
( ( __PERIOD__ ) = = RTC_SMOOTHCALIB_PERIOD_16SEC ) | | \
( ( __PERIOD__ ) = = RTC_SMOOTHCALIB_PERIOD_8SEC ) )
# define IS_RTC_SMOOTH_CALIB_PLUS(__PLUS__) (((__PLUS__) == RTC_SMOOTHCALIB_PLUSPULSES_SET) || \
( ( __PLUS__ ) = = RTC_SMOOTHCALIB_PLUSPULSES_RESET ) )
# define IS_RTC_SMOOTH_CALIB_MINUS(__VALUE__) ((__VALUE__) <= 0x000001FF)
# define IS_RTC_SHIFT_ADD1S(__SEL__) (((__SEL__) == RTC_SHIFTADD1S_RESET) || \
( ( __SEL__ ) = = RTC_SHIFTADD1S_SET ) )
# define IS_RTC_SHIFT_SUBFS(__FS__) ((__FS__) <= 0x00007FFF)
# define IS_RTC_CALIB_OUTPUT(__OUTPUT__) (((__OUTPUT__) == RTC_CALIBOUTPUT_512HZ) || \
( ( __OUTPUT__ ) = = RTC_CALIBOUTPUT_1HZ ) )
/**
* @ }
*/
/**
* @ }
*/
/**
* @ }
*/
/**
* @ }
*/
# ifdef __cplusplus
}
# endif
# endif /* __STM32F7xx_HAL_RTC_EX_H */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/