STM32F4xx HAL Driver master
STM32CubeF4 HAL / LL Drivers API Reference
Loading...
Searching...
No Matches
stm32f4xx_hal_rtc_ex.h
Go to the documentation of this file.
1
18
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef STM32F4xx_HAL_RTC_EX_H
21#define STM32F4xx_HAL_RTC_EX_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* Includes ------------------------------------------------------------------*/
28
29#include "stm32f4xx_hal_def.h"
30
34
38
39/* Exported types ------------------------------------------------------------*/
40
44
48typedef struct
49{
50 uint32_t Tamper;
52
53 uint32_t PinSelection;
55
56 uint32_t Trigger;
58
59 uint32_t Filter;
61
64
67
68 uint32_t TamperPullUp;
70
74
77
78/* Exported constants --------------------------------------------------------*/
79
83
87#define RTC_BKP_DR0 0x00000000U
88#define RTC_BKP_DR1 0x00000001U
89#define RTC_BKP_DR2 0x00000002U
90#define RTC_BKP_DR3 0x00000003U
91#define RTC_BKP_DR4 0x00000004U
92#define RTC_BKP_DR5 0x00000005U
93#define RTC_BKP_DR6 0x00000006U
94#define RTC_BKP_DR7 0x00000007U
95#define RTC_BKP_DR8 0x00000008U
96#define RTC_BKP_DR9 0x00000009U
97#define RTC_BKP_DR10 0x0000000AU
98#define RTC_BKP_DR11 0x0000000BU
99#define RTC_BKP_DR12 0x0000000CU
100#define RTC_BKP_DR13 0x0000000DU
101#define RTC_BKP_DR14 0x0000000EU
102#define RTC_BKP_DR15 0x0000000FU
103#define RTC_BKP_DR16 0x00000010U
104#define RTC_BKP_DR17 0x00000011U
105#define RTC_BKP_DR18 0x00000012U
106#define RTC_BKP_DR19 0x00000013U
110
114#define RTC_TIMESTAMPEDGE_RISING 0x00000000U
115#define RTC_TIMESTAMPEDGE_FALLING RTC_CR_TSEDGE
119
123#define RTC_TIMESTAMPPIN_DEFAULT 0x00000000U
124#if defined(RTC_AF2_SUPPORT)
125#define RTC_TIMESTAMPPIN_POS1 RTC_TAFCR_TSINSEL
126#endif /* RTC_AF2_SUPPORT */
130
134#define RTC_TAMPER_1 RTC_TAFCR_TAMP1E
135#if defined(RTC_TAMPER2_SUPPORT)
136#define RTC_TAMPER_2 RTC_TAFCR_TAMP2E
137#endif /* RTC_TAMPER2_SUPPORT */
141
145#define RTC_TAMPERPIN_DEFAULT 0x00000000U
146#if defined(RTC_AF2_SUPPORT)
147#define RTC_TAMPERPIN_POS1 RTC_TAFCR_TAMP1INSEL
148#endif /* RTC_AF2_SUPPORT */
152
156#define RTC_IT_TAMP RTC_TAFCR_TAMPIE
160
164#define RTC_TAMPERTRIGGER_RISINGEDGE 0x00000000U
165#define RTC_TAMPERTRIGGER_FALLINGEDGE 0x00000002U
166#define RTC_TAMPERTRIGGER_LOWLEVEL RTC_TAMPERTRIGGER_RISINGEDGE
167#define RTC_TAMPERTRIGGER_HIGHLEVEL RTC_TAMPERTRIGGER_FALLINGEDGE
171
175#define RTC_TAMPERFILTER_DISABLE 0x00000000U
176
177#define RTC_TAMPERFILTER_2SAMPLE RTC_TAFCR_TAMPFLT_0
179#define RTC_TAMPERFILTER_4SAMPLE RTC_TAFCR_TAMPFLT_1
181#define RTC_TAMPERFILTER_8SAMPLE RTC_TAFCR_TAMPFLT
183#define RTC_TAMPERFILTER_MASK RTC_TAFCR_TAMPFLT
188
192#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768 0x00000000U
194#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384 RTC_TAFCR_TAMPFREQ_0
196#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192 RTC_TAFCR_TAMPFREQ_1
198#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096 (RTC_TAFCR_TAMPFREQ_0 | RTC_TAFCR_TAMPFREQ_1)
200#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048 RTC_TAFCR_TAMPFREQ_2
202#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024 (RTC_TAFCR_TAMPFREQ_0 | RTC_TAFCR_TAMPFREQ_2)
204#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512 (RTC_TAFCR_TAMPFREQ_1 | RTC_TAFCR_TAMPFREQ_2)
206#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256 RTC_TAFCR_TAMPFREQ
208#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_MASK RTC_TAFCR_TAMPFREQ
213
217#define RTC_TAMPERPRECHARGEDURATION_1RTCCLK 0x00000000U
219#define RTC_TAMPERPRECHARGEDURATION_2RTCCLK RTC_TAFCR_TAMPPRCH_0
221#define RTC_TAMPERPRECHARGEDURATION_4RTCCLK RTC_TAFCR_TAMPPRCH_1
223#define RTC_TAMPERPRECHARGEDURATION_8RTCCLK RTC_TAFCR_TAMPPRCH
225#define RTC_TAMPERPRECHARGEDURATION_MASK RTC_TAFCR_TAMPPRCH
230
234#define RTC_TAMPER_PULLUP_ENABLE 0x00000000U
235#define RTC_TAMPER_PULLUP_DISABLE RTC_TAFCR_TAMPPUDIS
236#define RTC_TAMPER_PULLUP_MASK RTC_TAFCR_TAMPPUDIS
240
244#define RTC_TIMESTAMPONTAMPERDETECTION_ENABLE RTC_TAFCR_TAMPTS
245#define RTC_TIMESTAMPONTAMPERDETECTION_DISABLE 0x00000000U
246#define RTC_TIMESTAMPONTAMPERDETECTION_MASK RTC_TAFCR_TAMPTS
250
254#define RTC_WAKEUPCLOCK_RTCCLK_DIV16 0x00000000U
255#define RTC_WAKEUPCLOCK_RTCCLK_DIV8 RTC_CR_WUCKSEL_0
256#define RTC_WAKEUPCLOCK_RTCCLK_DIV4 RTC_CR_WUCKSEL_1
257#define RTC_WAKEUPCLOCK_RTCCLK_DIV2 (RTC_CR_WUCKSEL_0 | RTC_CR_WUCKSEL_1)
258#define RTC_WAKEUPCLOCK_CK_SPRE_16BITS RTC_CR_WUCKSEL_2
259#define RTC_WAKEUPCLOCK_CK_SPRE_17BITS (RTC_CR_WUCKSEL_1 | RTC_CR_WUCKSEL_2)
263
267#define RTC_CALIBSIGN_POSITIVE 0x00000000U
268#define RTC_CALIBSIGN_NEGATIVE RTC_CALIBR_DCS
272
276#define RTC_SMOOTHCALIB_PERIOD_32SEC 0x00000000U
278#define RTC_SMOOTHCALIB_PERIOD_16SEC RTC_CALR_CALW16
280#define RTC_SMOOTHCALIB_PERIOD_8SEC RTC_CALR_CALW8
285
289#define RTC_SMOOTHCALIB_PLUSPULSES_SET RTC_CALR_CALP
292#define RTC_SMOOTHCALIB_PLUSPULSES_RESET 0x00000000U
297
301#define RTC_SHIFTADD1S_RESET 0x00000000U
302#define RTC_SHIFTADD1S_SET RTC_SHIFTR_ADD1S
306
310#define RTC_CALIBOUTPUT_512HZ 0x00000000U
311#define RTC_CALIBOUTPUT_1HZ RTC_CR_COSEL
315
319
320/* Exported macros -----------------------------------------------------------*/
321
325
326/* ---------------------------------WAKEUPTIMER-------------------------------*/
327
331
337#define __HAL_RTC_WAKEUPTIMER_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_WUTE))
338
344#define __HAL_RTC_WAKEUPTIMER_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_WUTE))
345
354#define __HAL_RTC_WAKEUPTIMER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
355
364#define __HAL_RTC_WAKEUPTIMER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
365
374#define __HAL_RTC_WAKEUPTIMER_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__) >> 4U)) != 0U) ? 1U : 0U)
375
384#define __HAL_RTC_WAKEUPTIMER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
385
395#define __HAL_RTC_WAKEUPTIMER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U)? 1U : 0U)
396
405#define __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
406
411#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT() (EXTI->IMR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
412
417#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT() (EXTI->IMR &= ~RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
418
423#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_EVENT() (EXTI->EMR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
424
429#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_EVENT() (EXTI->EMR &= ~RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
430
435#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
436
441#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR &= ~RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
442
447#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
448
453#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR &= ~RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
454
459#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
460 __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE(); \
461 __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE(); \
462 } while(0U)
463
469#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
470 __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE(); \
471 __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE(); \
472 } while(0U)
473
478#define __HAL_RTC_WAKEUPTIMER_EXTI_GET_FLAG() (EXTI->PR & RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
479
484#define __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG() (EXTI->PR = RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
485
490#define __HAL_RTC_WAKEUPTIMER_EXTI_GENERATE_SWIT() (EXTI->SWIER |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
491
495
496/* ---------------------------------TIMESTAMP---------------------------------*/
497
501
507#define __HAL_RTC_TIMESTAMP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_TSE))
508
514#define __HAL_RTC_TIMESTAMP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_TSE))
515
524#define __HAL_RTC_TIMESTAMP_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
525
534#define __HAL_RTC_TIMESTAMP_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
535
544#define __HAL_RTC_TIMESTAMP_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__) >> 4U)) != 0U) ? 1U : 0U)
545
554#define __HAL_RTC_TIMESTAMP_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
555
565#define __HAL_RTC_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U)? 1U : 0U)
566
576#define __HAL_RTC_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
577
581
582/* ---------------------------------TAMPER------------------------------------*/
583
587
593#define __HAL_RTC_TAMPER1_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAFCR |= (RTC_TAFCR_TAMP1E))
594
600#define __HAL_RTC_TAMPER1_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAFCR &= ~(RTC_TAFCR_TAMP1E))
601
602#if defined(RTC_TAMPER2_SUPPORT)
608#define __HAL_RTC_TAMPER2_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAFCR |= (RTC_TAFCR_TAMP2E))
609
615#define __HAL_RTC_TAMPER2_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAFCR &= ~(RTC_TAFCR_TAMP2E))
616#endif /* RTC_TAMPER2_SUPPORT */
617
626#define __HAL_RTC_TAMPER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAFCR |= (__INTERRUPT__))
627
636#define __HAL_RTC_TAMPER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAFCR &= ~(__INTERRUPT__))
637
646#define __HAL_RTC_TAMPER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->TAFCR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
647
659#define __HAL_RTC_TAMPER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U)? 1U : 0U)
660
672#define __HAL_RTC_TAMPER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
676
677/* --------------------------TAMPER/TIMESTAMP---------------------------------*/
681
686#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT() (EXTI->IMR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
687
692#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_IT() (EXTI->IMR &= ~RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
693
698#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_EVENT() (EXTI->EMR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
699
704#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_EVENT() (EXTI->EMR &= ~RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
705
710#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
711
716#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR &= ~RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
717
722#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
723
728#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR &= ~RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
729
734#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
735 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE(); \
736 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE(); \
737 } while(0U)
738
744#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
745 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE(); \
746 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE(); \
747 } while(0U)
748
753#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG() (EXTI->PR & RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
754
759#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG() (EXTI->PR = RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
760
765#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GENERATE_SWIT() (EXTI->SWIER |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
769
770/* ------------------------------CALIBRATION----------------------------------*/
771
775
781#define __HAL_RTC_COARSE_CALIB_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_DCE))
782
788#define __HAL_RTC_COARSE_CALIB_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_DCE))
789
795#define __HAL_RTC_CALIBRATION_OUTPUT_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_COE))
796
802#define __HAL_RTC_CALIBRATION_OUTPUT_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_COE))
803
809#define __HAL_RTC_CLOCKREF_DETECTION_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_REFCKON))
810
816#define __HAL_RTC_CLOCKREF_DETECTION_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_REFCKON))
817
826#define __HAL_RTC_SHIFT_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U)? 1U : 0U)
830
834
835/* Exported functions --------------------------------------------------------*/
836
840
844/* RTC Timestamp and Tamper functions *****************************************/
845HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin);
846HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin);
849
854
856#if defined(RTC_TAMPER2_SUPPORT)
857void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc);
858#endif /* RTC_TAMPER2_SUPPORT */
862#if defined(RTC_TAMPER2_SUPPORT)
863HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
864#endif /* RTC_TAMPER2_SUPPORT */
868
872/* RTC Wakeup functions ******************************************************/
873HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
874HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
883
887/* Extended Control functions ************************************************/
888void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data);
889uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister);
890
891HAL_StatusTypeDef HAL_RTCEx_SetCoarseCalib(RTC_HandleTypeDef *hrtc, uint32_t CalibSign, uint32_t Value);
893HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmoothCalibMinusPulsesValue);
894HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS);
904
908/* Extended RTC features functions *******************************************/
914
918
919/* Private types -------------------------------------------------------------*/
920/* Private variables ---------------------------------------------------------*/
921/* Private constants ---------------------------------------------------------*/
922
926#define RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT EXTI_IMR_MR21
927#define RTC_EXTI_LINE_WAKEUPTIMER_EVENT EXTI_IMR_MR22
931
935/* Masks Definition */
936#if defined(RTC_TAMPER2_SUPPORT)
937#define RTC_TAMPER_ENABLE_BITS_MASK ((uint32_t) (RTC_TAMPER_1 | \
938 RTC_TAMPER_2))
939
940#define RTC_TAMPER_FLAGS_MASK ((uint32_t) (RTC_FLAG_TAMP1F | \
941 RTC_FLAG_TAMP2F))
942#else /* RTC_TAMPER2_SUPPORT */
943#define RTC_TAMPER_ENABLE_BITS_MASK RTC_TAMPER_1
944
945#define RTC_TAMPER_FLAGS_MASK RTC_FLAG_TAMP1F
946#endif /* RTC_TAMPER2_SUPPORT */
950
951/* Private macros ------------------------------------------------------------*/
952
956
960#define IS_RTC_BKP(BKP) ((BKP) < (uint32_t) RTC_BKP_NUMBER)
961
962#define IS_TIMESTAMP_EDGE(EDGE) (((EDGE) == RTC_TIMESTAMPEDGE_RISING) || \
963 ((EDGE) == RTC_TIMESTAMPEDGE_FALLING))
964
965#define IS_RTC_TAMPER(TAMPER) ((((TAMPER) & ((uint32_t)~RTC_TAMPER_ENABLE_BITS_MASK)) == 0x00U) && ((TAMPER) != 0U))
966
967#if defined(RTC_AF2_SUPPORT)
968#define IS_RTC_TAMPER_PIN(PIN) (((PIN) == RTC_TAMPERPIN_DEFAULT) || \
969 ((PIN) == RTC_TAMPERPIN_POS1))
970#else /* RTC_AF2_SUPPORT */
971#define IS_RTC_TAMPER_PIN(PIN) ((PIN) == RTC_TAMPERPIN_DEFAULT)
972#endif /* RTC_AF2_SUPPORT */
973
974#if defined(RTC_AF2_SUPPORT)
975#define IS_RTC_TIMESTAMP_PIN(PIN) (((PIN) == RTC_TIMESTAMPPIN_DEFAULT) || \
976 ((PIN) == RTC_TIMESTAMPPIN_POS1))
977#else /* RTC_AF2_SUPPORT */
978#define IS_RTC_TIMESTAMP_PIN(PIN) ((PIN) == RTC_TIMESTAMPPIN_DEFAULT)
979#endif /* RTC_AF2_SUPPORT */
980
981#define IS_RTC_TAMPER_TRIGGER(TRIGGER) (((TRIGGER) == RTC_TAMPERTRIGGER_RISINGEDGE) || \
982 ((TRIGGER) == RTC_TAMPERTRIGGER_FALLINGEDGE) || \
983 ((TRIGGER) == RTC_TAMPERTRIGGER_LOWLEVEL) || \
984 ((TRIGGER) == RTC_TAMPERTRIGGER_HIGHLEVEL))
985
986#define IS_RTC_TAMPER_FILTER(FILTER) (((FILTER) == RTC_TAMPERFILTER_DISABLE) || \
987 ((FILTER) == RTC_TAMPERFILTER_2SAMPLE) || \
988 ((FILTER) == RTC_TAMPERFILTER_4SAMPLE) || \
989 ((FILTER) == RTC_TAMPERFILTER_8SAMPLE))
990
991#define IS_RTC_TAMPER_FILTER_CONFIG_CORRECT(FILTER, TRIGGER) \
992 ( ( ((FILTER) != RTC_TAMPERFILTER_DISABLE) \
993 && ( ((TRIGGER) == RTC_TAMPERTRIGGER_LOWLEVEL) \
994 || ((TRIGGER) == RTC_TAMPERTRIGGER_HIGHLEVEL))) \
995 || ( ((FILTER) == RTC_TAMPERFILTER_DISABLE) \
996 && ( ((TRIGGER) == RTC_TAMPERTRIGGER_RISINGEDGE) \
997 || ((TRIGGER) == RTC_TAMPERTRIGGER_FALLINGEDGE))))
998
999#define IS_RTC_TAMPER_SAMPLING_FREQ(FREQ) (((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768)|| \
1000 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384)|| \
1001 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192) || \
1002 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096) || \
1003 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048) || \
1004 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024) || \
1005 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512) || \
1006 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256))
1007
1008#define IS_RTC_TAMPER_PRECHARGE_DURATION(DURATION) (((DURATION) == RTC_TAMPERPRECHARGEDURATION_1RTCCLK) || \
1009 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_2RTCCLK) || \
1010 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_4RTCCLK) || \
1011 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_8RTCCLK))
1012
1013#define IS_RTC_TAMPER_PULLUP_STATE(STATE) (((STATE) == RTC_TAMPER_PULLUP_ENABLE) || \
1014 ((STATE) == RTC_TAMPER_PULLUP_DISABLE))
1015
1016#define IS_RTC_TAMPER_TIMESTAMPONTAMPER_DETECTION(DETECTION) (((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_ENABLE) || \
1017 ((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_DISABLE))
1018
1019#define IS_RTC_WAKEUP_CLOCK(CLOCK) (((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV16) || \
1020 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV8) || \
1021 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV4) || \
1022 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV2) || \
1023 ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_16BITS) || \
1024 ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_17BITS))
1025
1026#define IS_RTC_WAKEUP_COUNTER(COUNTER) ((COUNTER) <= RTC_WUTR_WUT)
1027
1028#define IS_RTC_CALIB_SIGN(SIGN) (((SIGN) == RTC_CALIBSIGN_POSITIVE) || \
1029 ((SIGN) == RTC_CALIBSIGN_NEGATIVE))
1030
1031#define IS_RTC_CALIB_VALUE(VALUE) ((VALUE) < 0x20U)
1032
1033#define IS_RTC_SMOOTH_CALIB_PERIOD(PERIOD) (((PERIOD) == RTC_SMOOTHCALIB_PERIOD_32SEC) || \
1034 ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_16SEC) || \
1035 ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_8SEC))
1036
1037#define IS_RTC_SMOOTH_CALIB_PLUS(PLUS) (((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_SET) || \
1038 ((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_RESET))
1039
1040#define IS_RTC_SMOOTH_CALIB_MINUS(VALUE) ((VALUE) <= RTC_CALR_CALM)
1041
1042#define IS_RTC_SHIFT_ADD1S(SEL) (((SEL) == RTC_SHIFTADD1S_RESET) || \
1043 ((SEL) == RTC_SHIFTADD1S_SET))
1044
1045#define IS_RTC_SHIFT_SUBFS(FS) ((FS) <= RTC_SHIFTR_SUBFS)
1046
1047#define IS_RTC_CALIB_OUTPUT(OUTPUT) (((OUTPUT) == RTC_CALIBOUTPUT_512HZ) || \
1048 ((OUTPUT) == RTC_CALIBOUTPUT_1HZ))
1049
1052
1056
1060
1064
1065#ifdef __cplusplus
1066}
1067#endif
1068
1069#endif /* STM32F4xx_HAL_RTC_EX_H */
HAL_StatusTypeDef HAL_RTCEx_DeactivateTimeStamp(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper)
HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper)
HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format)
void HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin)
HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin)
void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper)
HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
HAL_StatusTypeDef HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock)
HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock)
void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)
Wake Up Timer Event Callback in non blocking mode.
uint32_t HAL_RTCEx_GetWakeUpTimer(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS)
HAL_StatusTypeDef HAL_RTCEx_SetCoarseCalib(RTC_HandleTypeDef *hrtc, uint32_t CalibSign, uint32_t Value)
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 SmoothCalibMinusPulsesValue)
HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_DeactivateCoarseCalib(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_SetRefClock(RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data)
HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput)
void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_PollForAlarmBEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
RTC Date structure definition.
RTC Handle Structure definition.
RTC Tamper structure definition.
RTC Time structure definition.