RTEMS 6.1-rc1
stm32h7xx_hal_rtc_ex.h
Go to the documentation of this file.
1
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef STM32H7xx_HAL_RTC_EX_H
21#define STM32H7xx_HAL_RTC_EX_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif /* __cplusplus */
26
27/* Includes ------------------------------------------------------------------*/
28#include "stm32h7xx_hal_def.h"
29
39/* Exported types ------------------------------------------------------------*/
40
50typedef struct
51{
52 uint32_t Tamper;
55 uint32_t Interrupt;
58 uint32_t Trigger;
61 uint32_t NoErase;
64 uint32_t MaskFlag;
67 uint32_t Filter;
76 uint32_t TamperPullUp;
86#if defined(TAMP)
91typedef struct
92{
93 uint32_t IntTamper;
96 uint32_t TimeStampOnTamperDetection;
98} RTC_InternalTamperTypeDef;
107#define RTC_ATAMP_SEED_NB_UINT32 4U
116#define RTC_TAMP_NB 3u
125typedef struct
126{
127 uint32_t Enable;
130 uint32_t Interrupt;
133 uint32_t Output;
137 uint32_t NoErase;
140 uint32_t MaskFlag;
143} RTC_ATampInputTypeDef;
144
145
146typedef struct
147{
148 uint32_t ActiveFilter;
151 uint32_t ActiveAsyncPrescaler;
154 uint32_t TimeStampOnTamperDetection;
157 uint32_t ActiveOutputChangePeriod;
160 uint32_t Seed[RTC_ATAMP_SEED_NB_UINT32];
164 RTC_ATampInputTypeDef TampInput[RTC_TAMP_NB];
167} RTC_ActiveTampersTypeDef;
168
172#endif /* TAMP */
173
178/* Exported constants --------------------------------------------------------*/
179
185/* ========================================================================== */
186/* ##### Extended RTC Backup registers exported constants ##### */
187/* ========================================================================== */
188
193#if defined(TAMP)
194#define BKP_REG_NUMBER TAMP_BKP_NUMBER
195#else
196#define BKP_REG_NUMBER RTC_BKP_NUMBER
197#endif /* TAMP */
206#define RTC_BKP_DR0 0x00u
207#define RTC_BKP_DR1 0x01u
208#define RTC_BKP_DR2 0x02u
209#define RTC_BKP_DR3 0x03u
210#define RTC_BKP_DR4 0x04u
211#define RTC_BKP_DR5 0x05u
212#define RTC_BKP_DR6 0x06u
213#define RTC_BKP_DR7 0x07u
214#define RTC_BKP_DR8 0x08u
215#define RTC_BKP_DR9 0x09u
216#define RTC_BKP_DR10 0x0Au
217#define RTC_BKP_DR11 0x0Bu
218#define RTC_BKP_DR12 0x0Cu
219#define RTC_BKP_DR13 0x0Du
220#define RTC_BKP_DR14 0x0Eu
221#define RTC_BKP_DR15 0x0Fu
222#define RTC_BKP_DR16 0x10u
223#define RTC_BKP_DR17 0x11u
224#define RTC_BKP_DR18 0x12u
225#define RTC_BKP_DR19 0x13u
226#define RTC_BKP_DR20 0x14u
227#define RTC_BKP_DR21 0x15u
228#define RTC_BKP_DR22 0x16u
229#define RTC_BKP_DR23 0x17u
230#define RTC_BKP_DR24 0x18u
231#define RTC_BKP_DR25 0x19u
232#define RTC_BKP_DR26 0x1Au
233#define RTC_BKP_DR27 0x1Bu
234#define RTC_BKP_DR28 0x1Cu
235#define RTC_BKP_DR29 0x1Du
236#define RTC_BKP_DR30 0x1Eu
237#define RTC_BKP_DR31 0x1Fu
242/* ========================================================================== */
243/* ##### RTC TimeStamp exported constants ##### */
244/* ========================================================================== */
245
251#define RTC_TIMESTAMPEDGE_RISING 0x00000000u
252#define RTC_TIMESTAMPEDGE_FALLING RTC_CR_TSEDGE
261#define RTC_TIMESTAMPPIN_DEFAULT 0x00000000u
267/* ========================================================================== */
268/* ##### RTC Tamper exported constants ##### */
269/* ========================================================================== */
270
275#if defined(TAMP)
276#define RTC_TAMPER_1 TAMP_CR1_TAMP1E
277#define RTC_TAMPER_2 TAMP_CR1_TAMP2E
278#define RTC_TAMPER_3 TAMP_CR1_TAMP3E
279#else
280#define RTC_TAMPER_1 RTC_TAMPCR_TAMP1E
281#define RTC_TAMPER_2 RTC_TAMPCR_TAMP2E
282#define RTC_TAMPER_3 RTC_TAMPCR_TAMP3E
283#endif /* TAMP */
284
285#define RTC_TAMPER_ALL (RTC_TAMPER_1 | RTC_TAMPER_2 | RTC_TAMPER_3)
294#if defined(TAMP)
295#define RTC_IT_TAMP1 TAMP_IER_TAMP1IE
296#define RTC_IT_TAMP2 TAMP_IER_TAMP2IE
297#define RTC_IT_TAMP3 TAMP_IER_TAMP3IE
298#else
299#define RTC_IT_TAMP1 RTC_TAMPCR_TAMP1IE
300#define RTC_IT_TAMP2 RTC_TAMPCR_TAMP2IE
301#define RTC_IT_TAMP3 RTC_TAMPCR_TAMP3IE
302#endif /* TAMP */
303
304#if defined(TAMP)
305#define RTC_IT_TAMP 0x00000000u
306#define RTC_IT_TAMPALL (RTC_IT_TAMP1 | RTC_IT_TAMP2 | RTC_IT_TAMP3)
307#else
308#define RTC_IT_TAMP RTC_TAMPCR_TAMPIE
309#define RTC_IT_TAMPALL RTC_IT_TAMP
310#endif /* TAMP */
319#if defined(TAMP)
320#define RTC_INT_TAMPER_1 TAMP_CR1_ITAMP1E
321#define RTC_INT_TAMPER_2 TAMP_CR1_ITAMP2E
322#define RTC_INT_TAMPER_3 TAMP_CR1_ITAMP3E
323#define RTC_INT_TAMPER_4 TAMP_CR1_ITAMP4E
324#define RTC_INT_TAMPER_5 TAMP_CR1_ITAMP5E
325#define RTC_INT_TAMPER_6 TAMP_CR1_ITAMP6E
326#define RTC_INT_TAMPER_8 TAMP_CR1_ITAMP8E
327
328#define RTC_INT_TAMPER_ALL (RTC_INT_TAMPER_1 | RTC_INT_TAMPER_2 |\
329 RTC_INT_TAMPER_3 | RTC_INT_TAMPER_4 |\
330 RTC_INT_TAMPER_5 | RTC_INT_TAMPER_6 |\
331 RTC_INT_TAMPER_8)
332#endif /* TAMP */
341#if defined(TAMP)
342#define RTC_INTERNAL_TAMPER1_INTERRUPT TAMP_IER_ITAMP1IE
343#define RTC_INTERNAL_TAMPER2_INTERRUPT TAMP_IER_ITAMP2IE
344#define RTC_INTERNAL_TAMPER3_INTERRUPT TAMP_IER_ITAMP3IE
345#define RTC_INTERNAL_TAMPER4_INTERRUPT TAMP_IER_ITAMP4IE
346#define RTC_INTERNAL_TAMPER5_INTERRUPT TAMP_IER_ITAMP5IE
347#define RTC_INTERNAL_TAMPER6_INTERRUPT TAMP_IER_ITAMP6IE
348#define RTC_INTERNAL_TAMPER8_INTERRUPT TAMP_IER_ITAMP8IE
349#endif /* TAMP */
358#define RTC_TAMPERTRIGGER_RISINGEDGE 0x01u
359#define RTC_TAMPERTRIGGER_FALLINGEDGE 0x02u
360#define RTC_TAMPERTRIGGER_LOWLEVEL 0x04u
361#define RTC_TAMPERTRIGGER_HIGHLEVEL 0x08u
363#if defined(TAMP)
364#define RTC_TAMPER_1_TRIGGER TAMP_CR2_TAMP1TRG
365#define RTC_TAMPER_2_TRIGGER TAMP_CR2_TAMP2TRG
366#define RTC_TAMPER_3_TRIGGER TAMP_CR2_TAMP3TRG
367#else
368#define RTC_TAMPER_1_TRIGGER RTC_TAMPCR_TAMP1TRG
369#define RTC_TAMPER_2_TRIGGER RTC_TAMPCR_TAMP2TRG
370#define RTC_TAMPER_3_TRIGGER RTC_TAMPCR_TAMP3TRG
371#endif /* TAMP */
372
373#define RTC_TAMPER_X_TRIGGER (RTC_TAMPER_1_TRIGGER |\
374 RTC_TAMPER_2_TRIGGER |\
375 RTC_TAMPER_3_TRIGGER)
384#if defined(TAMP)
385#define RTC_TAMPER_ERASE_BACKUP_ENABLE 0x00u
386#define RTC_TAMPER_ERASE_BACKUP_DISABLE 0x01u
387#else
388#define RTC_TAMPER_ERASE_BACKUP_ENABLE 0x00000000u
389#define RTC_TAMPER_ERASE_BACKUP_DISABLE RTC_TAMPCR_TAMP1NOERASE
390#endif /* TAMP */
391
392#if defined(TAMP)
393#define RTC_DISABLE_BKP_ERASE_ON_TAMPER_1 TAMP_CR2_TAMP1NOERASE
394#define RTC_DISABLE_BKP_ERASE_ON_TAMPER_2 TAMP_CR2_TAMP2NOERASE
395#define RTC_DISABLE_BKP_ERASE_ON_TAMPER_3 TAMP_CR2_TAMP3NOERASE
396#else
397#define RTC_DISABLE_BKP_ERASE_ON_TAMPER_1 RTC_TAMPCR_TAMP1NOERASE
398#define RTC_DISABLE_BKP_ERASE_ON_TAMPER_2 RTC_TAMPCR_TAMP2NOERASE
399#define RTC_DISABLE_BKP_ERASE_ON_TAMPER_3 RTC_TAMPCR_TAMP3NOERASE
400#endif /* TAMP */
401
402#define RTC_DISABLE_BKP_ERASE_ON_TAMPER_MASK (RTC_DISABLE_BKP_ERASE_ON_TAMPER_1 |\
403 RTC_DISABLE_BKP_ERASE_ON_TAMPER_2 |\
404 RTC_DISABLE_BKP_ERASE_ON_TAMPER_3)
413#if defined(TAMP)
414#define RTC_TAMPERMASK_FLAG_DISABLE 0x00u
415#define RTC_TAMPERMASK_FLAG_ENABLE 0x01u
416#else
417#define RTC_TAMPERMASK_FLAG_DISABLE 0x00000000u
418#define RTC_TAMPERMASK_FLAG_ENABLE RTC_TAMPCR_TAMP1MF
419#endif /* TAMP */
420
421#if defined(TAMP)
422#define RTC_TAMPER_1_MASK_FLAG TAMP_CR2_TAMP1MSK
423#define RTC_TAMPER_2_MASK_FLAG TAMP_CR2_TAMP2MSK
424#define RTC_TAMPER_3_MASK_FLAG TAMP_CR2_TAMP3MSK
425#else
426#define RTC_TAMPER_1_MASK_FLAG RTC_TAMPCR_TAMP1MF
427#define RTC_TAMPER_2_MASK_FLAG RTC_TAMPCR_TAMP2MF
428#define RTC_TAMPER_3_MASK_FLAG RTC_TAMPCR_TAMP3MF
429#endif /* TAMP */
430
431#define RTC_TAMPER_X_MASK_FLAG (RTC_TAMPER_1_MASK_FLAG |\
432 RTC_TAMPER_2_MASK_FLAG |\
433 RTC_TAMPER_3_MASK_FLAG)
442#if defined(TAMP)
443#define RTC_TAMPERFILTER_DISABLE 0x00000000U
445#define RTC_TAMPERFILTER_2SAMPLE TAMP_FLTCR_TAMPFLT_0
447#define RTC_TAMPERFILTER_4SAMPLE TAMP_FLTCR_TAMPFLT_1
449#define RTC_TAMPERFILTER_8SAMPLE TAMP_FLTCR_TAMPFLT
451#define RTC_TAMPERFILTER_MASK TAMP_FLTCR_TAMPFLT
453#else
454#define RTC_TAMPERFILTER_DISABLE 0x00000000u
456#define RTC_TAMPERFILTER_2SAMPLE RTC_TAMPCR_TAMPFLT_0
458#define RTC_TAMPERFILTER_4SAMPLE RTC_TAMPCR_TAMPFLT_1
460#define RTC_TAMPERFILTER_8SAMPLE RTC_TAMPCR_TAMPFLT
462#define RTC_TAMPERFILTER_MASK RTC_TAMPCR_TAMPFLT
464#endif /* TAMP */
473#if defined(TAMP)
474#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768 0x00000000U
476#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384 TAMP_FLTCR_TAMPFREQ_0
478#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192 TAMP_FLTCR_TAMPFREQ_1
480#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096 (TAMP_FLTCR_TAMPFREQ_0 | TAMP_FLTCR_TAMPFREQ_1)
482#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048 TAMP_FLTCR_TAMPFREQ_2
484#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024 (TAMP_FLTCR_TAMPFREQ_0 | TAMP_FLTCR_TAMPFREQ_2)
486#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512 (TAMP_FLTCR_TAMPFREQ_1 | TAMP_FLTCR_TAMPFREQ_2)
488#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256 TAMP_FLTCR_TAMPFREQ
490#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_MASK TAMP_FLTCR_TAMPFREQ
492#else
493#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768 0x00000000u
495#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384 RTC_TAMPCR_TAMPFREQ_0
497#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192 RTC_TAMPCR_TAMPFREQ_1
499#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096 (RTC_TAMPCR_TAMPFREQ_0 | RTC_TAMPCR_TAMPFREQ_1)
501#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048 RTC_TAMPCR_TAMPFREQ_2
503#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024 (RTC_TAMPCR_TAMPFREQ_0 | RTC_TAMPCR_TAMPFREQ_2)
505#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512 (RTC_TAMPCR_TAMPFREQ_1 | RTC_TAMPCR_TAMPFREQ_2)
507#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256 RTC_TAMPCR_TAMPFREQ
509#define RTC_TAMPERSAMPLINGFREQ_RTCCLK_MASK RTC_TAMPCR_TAMPFREQ
511#endif /* TAMP */
520#if defined(TAMP)
521#define RTC_TAMPERPRECHARGEDURATION_1RTCCLK 0x00000000U
523#define RTC_TAMPERPRECHARGEDURATION_2RTCCLK TAMP_FLTCR_TAMPPRCH_0
525#define RTC_TAMPERPRECHARGEDURATION_4RTCCLK TAMP_FLTCR_TAMPPRCH_1
527#define RTC_TAMPERPRECHARGEDURATION_8RTCCLK TAMP_FLTCR_TAMPPRCH
529#define RTC_TAMPERPRECHARGEDURATION_MASK TAMP_FLTCR_TAMPPRCH
531#else
532#define RTC_TAMPERPRECHARGEDURATION_1RTCCLK 0x00000000u
534#define RTC_TAMPERPRECHARGEDURATION_2RTCCLK RTC_TAMPCR_TAMPPRCH_0
536#define RTC_TAMPERPRECHARGEDURATION_4RTCCLK RTC_TAMPCR_TAMPPRCH_1
538#define RTC_TAMPERPRECHARGEDURATION_8RTCCLK RTC_TAMPCR_TAMPPRCH
540#define RTC_TAMPERPRECHARGEDURATION_MASK RTC_TAMPCR_TAMPPRCH
542#endif /* TAMP */
551#if defined(TAMP)
552#define RTC_TIMESTAMPONTAMPERDETECTION_DISABLE 0x00000000u
553#define RTC_TIMESTAMPONTAMPERDETECTION_ENABLE RTC_CR_TAMPTS
554#define RTC_TIMESTAMPONTAMPERDETECTION_MASK RTC_CR_TAMPTS
555#else
556#define RTC_TIMESTAMPONTAMPERDETECTION_DISABLE 0x00000000u
557#define RTC_TIMESTAMPONTAMPERDETECTION_ENABLE RTC_TAMPCR_TAMPTS
558#define RTC_TIMESTAMPONTAMPERDETECTION_MASK RTC_TAMPCR_TAMPTS
559#endif /* TAMP */
568#if defined(TAMP)
569#define RTC_TAMPER_PULLUP_ENABLE 0x00000000u
570#define RTC_TAMPER_PULLUP_DISABLE TAMP_FLTCR_TAMPPUDIS
571#define RTC_TAMPER_PULLUP_MASK TAMP_FLTCR_TAMPPUDIS
572#else
573#define RTC_TAMPER_PULLUP_ENABLE 0x00000000u
574#define RTC_TAMPER_PULLUP_DISABLE RTC_TAMPCR_TAMPPUDIS
575#define RTC_TAMPER_PULLUP_MASK RTC_TAMPCR_TAMPPUDIS
576#endif /* TAMP */
585#if defined(TAMP)
586#define RTC_TAMPERDETECTIONOUTPUT_DISABLE 0x00000000u
587#define RTC_TAMPERDETECTIONOUTPUT_ENABLE RTC_CR_TAMPOE
589#endif /* TAMP */
598#if defined(TAMP)
599#define RTC_FLAG_TAMP1F TAMP_SR_TAMP1F
600#define RTC_FLAG_TAMP2F TAMP_SR_TAMP2F
601#define RTC_FLAG_TAMP3F TAMP_SR_TAMP3F
602#else
603#define RTC_FLAG_TAMP1F RTC_ISR_TAMP1F
604#define RTC_FLAG_TAMP2F RTC_ISR_TAMP2F
605#define RTC_FLAG_TAMP3F RTC_ISR_TAMP3F
606#endif /* TAMP */
615#define RTC_ATAMP_ENABLE 1u
616#define RTC_ATAMP_DISABLE 0u
625#define RTC_ATAMP_INTERRUPT_ENABLE 1u
626#define RTC_ATAMP_INTERRUPT_DISABLE 0u
635#define RTC_ATAMP_FILTER_ENABLE TAMP_ATCR1_FLTEN
636#define RTC_ATAMP_FILTER_DISABLE 0u
645#define RTC_ATAMP_ASYNCPRES_RTCCLK 0u
646#define RTC_ATAMP_ASYNCPRES_RTCCLK_2 TAMP_ATCR1_ATCKSEL_0
647#define RTC_ATAMP_ASYNCPRES_RTCCLK_4 TAMP_ATCR1_ATCKSEL_1
648#define RTC_ATAMP_ASYNCPRES_RTCCLK_8 (TAMP_ATCR1_ATCKSEL_1 | TAMP_ATCR1_ATCKSEL_0)
649#define RTC_ATAMP_ASYNCPRES_RTCCLK_16 TAMP_ATCR1_ATCKSEL_2
650#define RTC_ATAMP_ASYNCPRES_RTCCLK_32 (TAMP_ATCR1_ATCKSEL_2 | TAMP_ATCR1_ATCKSEL_0)
651#define RTC_ATAMP_ASYNCPRES_RTCCLK_64 (TAMP_ATCR1_ATCKSEL_2 | TAMP_ATCR1_ATCKSEL_1)
652#define RTC_ATAMP_ASYNCPRES_RTCCLK_128 (TAMP_ATCR1_ATCKSEL_2 | TAMP_ATCR1_ATCKSEL_1 | TAMP_ATCR1_ATCKSEL_0)
661#define RTC_ATAMP_1 0u
662#define RTC_ATAMP_2 1u
663#define RTC_ATAMP_3 2u
664#define RTC_ATAMP_4 3u
665#define RTC_ATAMP_5 4u
666#define RTC_ATAMP_6 5u
667#define RTC_ATAMP_7 6u
668#define RTC_ATAMP_8 7u
677#define RTC_MONOTONIC_COUNTER_1 0u
686#if defined(TAMP)
687/* Add this offset to RTC registers base address to reach TAMP registers base address. */
688#define TAMP_OFFSET (TAMP_BASE - RTC_BASE)
689#endif /* TAMP */
694/* ========================================================================== */
695/* ##### RTC Wake-up exported constants ##### */
696/* ========================================================================== */
697
702#define RTC_WAKEUPCLOCK_RTCCLK_DIV16 0x00000000u
703#define RTC_WAKEUPCLOCK_RTCCLK_DIV8 RTC_CR_WUCKSEL_0
704#define RTC_WAKEUPCLOCK_RTCCLK_DIV4 RTC_CR_WUCKSEL_1
705#define RTC_WAKEUPCLOCK_RTCCLK_DIV2 (RTC_CR_WUCKSEL_0 | RTC_CR_WUCKSEL_1)
706#define RTC_WAKEUPCLOCK_CK_SPRE_16BITS RTC_CR_WUCKSEL_2
707#define RTC_WAKEUPCLOCK_CK_SPRE_17BITS (RTC_CR_WUCKSEL_1 | RTC_CR_WUCKSEL_2)
712/* ========================================================================== */
713/* ##### Extended RTC Peripheral Control exported constants ##### */
714/* ========================================================================== */
715
720#define RTC_SMOOTHCALIB_PERIOD_32SEC 0x00000000u
722#define RTC_SMOOTHCALIB_PERIOD_16SEC RTC_CALR_CALW16
724#define RTC_SMOOTHCALIB_PERIOD_8SEC RTC_CALR_CALW8
734#define RTC_SMOOTHCALIB_PLUSPULSES_SET RTC_CALR_CALP
737#define RTC_SMOOTHCALIB_PLUSPULSES_RESET 0x00000000u
747#define RTC_CALIBOUTPUT_512HZ 0x00000000u
748#define RTC_CALIBOUTPUT_1HZ RTC_CR_COSEL
757#define RTC_SHIFTADD1S_RESET 0x00000000u
758#define RTC_SHIFTADD1S_SET RTC_SHIFTR_ADD1S
767/* Exported macros -----------------------------------------------------------*/
768
774/* ========================================================================== */
775/* ##### RTC Wake-up exported macros ##### */
776/* ========================================================================== */
777
783#define __HAL_RTC_WAKEUPTIMER_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_WUTE))
784
790#define __HAL_RTC_WAKEUPTIMER_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_WUTE))
791
800#define __HAL_RTC_WAKEUPTIMER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
801
810#define __HAL_RTC_WAKEUPTIMER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
811
820#if defined(TAMP)
821#define __HAL_RTC_WAKEUPTIMER_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->SR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
822#else
823#define __HAL_RTC_WAKEUPTIMER_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
824#endif /* TAMP */
825
834#define __HAL_RTC_WAKEUPTIMER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
835
836#if defined(TAMP)
845#define __HAL_RTC_WAKEUPTIMER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->SR) & (__FLAG__)) != 0U) ? 1U : 0U)
846#else
856#define __HAL_RTC_WAKEUPTIMER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U) ? 1U : 0U)
857#endif /* TAMP */
858
867#if defined(TAMP)
868#define __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SCR |= __FLAG__)
869#else
870#define __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
871#endif /* TAMP */
872
873/* ========================================================================== */
874/* ##### RTC Tamper exported macros ##### */
875/* ========================================================================== */
876
882#if defined(TAMP)
883#define __HAL_RTC_TAMPER1_ENABLE(__HANDLE__) (((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->CR1 |= (TAMP_CR1_TAMP1E))
884#else
885#define __HAL_RTC_TAMPER1_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR |= (RTC_TAMPCR_TAMP1E))
886#endif /* TAMP */
887
893#if defined(TAMP)
894#define __HAL_RTC_TAMPER1_DISABLE(__HANDLE__) (((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->CR1 &= ~(RTC_TAMPCR_TAMP1E))
895#else
896#define __HAL_RTC_TAMPER1_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TAMPCR_TAMP1E))
897#endif /* TAMP */
898
904#if defined(TAMP)
905#define __HAL_RTC_TAMPER2_ENABLE(__HANDLE__) (((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->CR1 |= (TAMP_CR1_TAMP2E))
906#else
907#define __HAL_RTC_TAMPER2_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR |= (RTC_TAMPCR_TAMP2E))
908#endif /* TAMP */
909
915#if defined(TAMP)
916#define __HAL_RTC_TAMPER2_DISABLE(__HANDLE__) (((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + (TAMP_OFFSET))->CR1 &= ~(RTC_TAMPCR_TAMP2E))
917#else
918#define __HAL_RTC_TAMPER2_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TAMPCR_TAMP2E))
919#endif /* TAMP */
920
926#if defined(TAMP)
927#define __HAL_RTC_TAMPER3_ENABLE(__HANDLE__) (((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->CR1 |= (TAMP_CR1_TAMP3E))
928#else
929#define __HAL_RTC_TAMPER3_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR |= (RTC_TAMPCR_TAMP3E))
930#endif /* TAMP */
931
937#if defined(TAMP)
938#define __HAL_RTC_TAMPER3_DISABLE(__HANDLE__) (((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->CR1 &= ~(RTC_TAMPCR_TAMP3E))
939#else
940#define __HAL_RTC_TAMPER3_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TAMPCR_TAMP3E))
941#endif /* TAMP */
942
954#if defined(TAMP)
955#define __HAL_RTC_TAMPER_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->IER |= (__INTERRUPT__))
956#else
957#define __HAL_RTC_TAMPER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAMPCR |= (__INTERRUPT__))
958#endif /* TAMP */
959
971#if defined(TAMP)
972#define __HAL_RTC_TAMPER_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->IER &= ~(__INTERRUPT__))
973#else
974#define __HAL_RTC_TAMPER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAMPCR &= ~(__INTERRUPT__))
975#endif /* TAMP */
976
987#if defined(TAMP)
988#define __HAL_RTC_TAMPER_GET_IT(__HANDLE__, __INTERRUPT__) ((((((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->SR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
989#else
990#define __HAL_RTC_TAMPER_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
991#endif /* TAMP */
992
1004#if defined(TAMP)
1005#define __HAL_RTC_TAMPER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->IER) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
1006#else
1007#define __HAL_RTC_TAMPER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->TAMPCR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
1008#endif /* TAMP */
1009
1020#if defined(TAMP)
1021#define __HAL_RTC_TAMPER_GET_FLAG(__HANDLE__, __FLAG__) ((((((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->SR) & (__FLAG__)) != 0U) ? 1U : 0U)
1022#else
1023#define __HAL_RTC_TAMPER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U) ? 1U : 0U)
1024#endif /* TAMP */
1025
1036#if defined(TAMP)
1037#define __HAL_RTC_TAMPER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->SCR) |= (__FLAG__))
1038#else
1039#define __HAL_RTC_TAMPER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
1040#endif /* TAMP */
1041
1055#if defined(TAMP)
1056#define __HAL_RTC_TAMPER_GET_SAMPLING_FREQ(__HANDLE__) ((uint32_t)((((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->FLTCR) & (RTC_TAMPERSAMPLINGFREQ_RTCCLK_MASK)))
1057#else
1058#define __HAL_RTC_TAMPER_GET_SAMPLING_FREQ(__HANDLE__) ((uint32_t)(((__HANDLE__)->Instance->TAMPCR) & (RTC_TAMPERSAMPLINGFREQ_RTCCLK_MASK)))
1059#endif /* TAMP */
1060
1072#if defined(TAMP)
1073#define __HAL_RTC_TAMPER_GET_SAMPLES_COUNT(__HANDLE__) ((uint32_t)((((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->FLTCR) & (RTC_TAMPERFILTER_MASK)))
1074#else
1075#define __HAL_RTC_TAMPER_GET_SAMPLES_COUNT(__HANDLE__) ((uint32_t)(((__HANDLE__)->Instance->TAMPCR) & (RTC_TAMPERFILTER_MASK)))
1076#endif /* TAMP */
1077
1088#if defined(TAMP)
1089#define __HAL_RTC_TAMPER_GET_PRCHRG_DURATION(__HANDLE__) ((uint32_t)((((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->FLTCR) & (RTC_TAMPERPRECHARGEDURATION_MASK)))
1090#else
1091#define __HAL_RTC_TAMPER_GET_PRCHRG_DURATION(__HANDLE__) ((uint32_t)(((__HANDLE__)->Instance->TAMPCR) & (RTC_TAMPERPRECHARGEDURATION_MASK)))
1092#endif /* TAMP */
1093
1102#if defined(TAMP)
1103#define __HAL_RTC_TAMPER_GET_PULLUP_STATUS(__HANDLE__) ((uint32_t)((((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->FLTCR) & (RTC_TAMPER_PULLUP_MASK)))
1104#else
1105#define __HAL_RTC_TAMPER_GET_PULLUP_STATUS(__HANDLE__) ((uint32_t)(((__HANDLE__)->Instance->TAMPCR) & (RTC_TAMPER_PULLUP_MASK)))
1106#endif /* TAMP */
1107
1108/* ========================================================================== */
1109/* ##### RTC TimeStamp exported macros ##### */
1110/* ========================================================================== */
1111
1117#define __HAL_RTC_TIMESTAMP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_TSE))
1118
1124#define __HAL_RTC_TIMESTAMP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_TSE))
1125
1134#define __HAL_RTC_TIMESTAMP_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
1135
1144#define __HAL_RTC_TIMESTAMP_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
1145
1154#if defined(TAMP)
1155#define __HAL_RTC_TIMESTAMP_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->MISR) & ((__INTERRUPT__) >> 12)) != 0U) ? 1U : 0U)
1156#else
1157#define __HAL_RTC_TIMESTAMP_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
1158#endif /* TAMP */
1167#define __HAL_RTC_TIMESTAMP_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != 0U) ? 1U : 0U)
1168
1178#if defined(TAMP)
1179#define __HAL_RTC_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->SR) & (__FLAG__)) != 0U) ? 1U : 0U)
1180#else
1181#define __HAL_RTC_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U) ? 1U : 0U)
1182#endif /* TAMP */
1183
1193#if defined(TAMP)
1194#define __HAL_RTC_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SCR |= __FLAG__)
1195#else
1196#define __HAL_RTC_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT)))
1197#endif /* TAMP */
1198
1204#define __HAL_RTC_INTERNAL_TIMESTAMP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_ITSE))
1205
1211#define __HAL_RTC_INTERNAL_TIMESTAMP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_ITSE))
1212
1221#if defined(TAMP)
1222#define __HAL_RTC_INTERNAL_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->SR) & (__FLAG__)) != 0U) ? 1U : 0U)
1223#else
1224#define __HAL_RTC_INTERNAL_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U) ? 1U : 0U)
1225#endif /* TAMP */
1226
1236#if defined(TAMP)
1237#define __HAL_RTC_INTERNAL_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SCR |= __FLAG__)
1238#else
1239#define __HAL_RTC_INTERNAL_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT)))
1240#endif /* TAMP */
1241
1247#if defined(TAMP)
1248#define __HAL_RTC_TAMPTS_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_TIMESTAMPONTAMPERDETECTION_MASK))
1249#else
1250#define __HAL_RTC_TAMPTS_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR |= (RTC_TIMESTAMPONTAMPERDETECTION_MASK))
1251#endif /* TAMP */
1252
1258#if defined(TAMP)
1259#define __HAL_RTC_TAMPTS_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_TIMESTAMPONTAMPERDETECTION_MASK))
1260#else
1261#define __HAL_RTC_TAMPTS_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TIMESTAMPONTAMPERDETECTION_MASK))
1262#endif /* TAMP */
1263
1272#if defined(TAMP)
1273#define __HAL_RTC_TAMPTS_GET_STATUS(__HANDLE__) ((__HANDLE__)->Instance->CR &= RTC_TIMESTAMPONTAMPERDETECTION_MASK)
1274#else
1275#define __HAL_RTC_TAMPTS_GET_STATUS(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= RTC_TIMESTAMPONTAMPERDETECTION_MASK)
1276#endif /* TAMP */
1277
1278#if defined(TAMP)
1284#define __HAL_RTC_TAMPOE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_TAMPOE))
1285
1291#define __HAL_RTC_TAMPOE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_TAMPOE))
1292#endif /* TAMP */
1293
1294/* ========================================================================== */
1295/* ##### Extended RTC Peripheral Control exported macros ##### */
1296/* ========================================================================== */
1297
1303#define __HAL_RTC_CALIBRATION_OUTPUT_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_COE))
1304
1310#define __HAL_RTC_CALIBRATION_OUTPUT_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_COE))
1311
1317#define __HAL_RTC_CLOCKREF_DETECTION_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_REFCKON))
1318
1324#define __HAL_RTC_CLOCKREF_DETECTION_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_REFCKON))
1325
1334#if defined(TAMP)
1335#define __HAL_RTC_SHIFT_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ICSR) & (__FLAG__)) != 0U) ? 1U : 0U)
1336#else
1337#define __HAL_RTC_SHIFT_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U) ? 1U : 0U)
1338#endif /* TAMP */
1339
1340/* ========================================================================== */
1341/* ##### RTC Wake-up Interrupt exported macros ##### */
1342/* ========================================================================== */
1343
1348#if defined(EXTI_D1)
1349#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT() (EXTI_D1->IMR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1350#else /* EXTI */
1351#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT() (EXTI->IMR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1352#endif /* EXTI_D1 */
1357#if defined(EXTI_D1)
1358#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT() (EXTI_D1->IMR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
1359#else /* EXTI */
1360#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT() (EXTI->IMR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
1361#endif /* EXTI_D1 */
1362
1367#if defined(EXTI_D1)
1368#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_EVENT() (EXTI_D1->EMR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1369#else /* EXTI */
1370#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_EVENT() (EXTI->EMR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1371#endif /* EXTI_D1 */
1372
1377#if defined(EXTI_D1)
1378#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_EVENT() (EXTI_D1->EMR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
1379#else /* EXTI */
1380#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_EVENT() (EXTI->EMR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
1381#endif /* EXTI_D1 */
1382
1387#define __HAL_RTC_WAKEUPTIMER_EXTID3_ENABLE_EVENT() (EXTI->D3PMR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1388
1393#define __HAL_RTC_WAKEUPTIMER_EXTID3_DISABLE_EVENT() (EXTI->D3PMR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
1394
1395#if defined(DUAL_CORE)
1400#define __HAL_RTC_WAKEUPTIMER_EXTID2_ENABLE_IT() (EXTI_D2->IMR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1401
1406#define __HAL_RTC_WAKEUPTIMER_EXTID2_DISABLE_IT() (EXTI_D2->IMR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
1407
1412#define __HAL_RTC_WAKEUPTIMER_EXTID2_ENABLE_EVENT() (EXTI_D2->EMR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1413
1418#define __HAL_RTC_WAKEUPTIMER_EXTID2_DISABLE_EVENT() (EXTI_D2->EMR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
1419
1420#endif /* DUAL_CORE */
1421
1426#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1427
1432#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
1433
1438#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1439
1444#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
1445
1450#define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
1451 __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE(); \
1452 __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE(); \
1453 } while(0)
1454
1460#define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
1461 __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE(); \
1462 __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE(); \
1463 } while(0)
1464
1469#if defined(EXTI_D1)
1470#define __HAL_RTC_WAKEUPTIMER_EXTI_GET_FLAG() (EXTI_D1->PR1 & RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1471#else /* EXTI */
1472#define __HAL_RTC_WAKEUPTIMER_EXTI_GET_FLAG() (EXTI->PR1 & RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1473#endif /* EXTI_D1 */
1474
1479#if defined(EXTI_D1)
1480#define __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG() (EXTI_D1->PR1 = RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1481#else /* EXTI */
1482#define __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG() (EXTI->PR1 = RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1483#endif /* EXTI_D1 */
1484
1489#define __HAL_RTC_WAKEUPTIMER_EXTID3_GET_FLAG() (EXTI_D3->PR1 & RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1490
1495#define __HAL_RTC_WAKEUPTIMER_EXTID3_CLEAR_FLAG() (EXTI_D3->PR1 = RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1496
1501#define __HAL_RTC_WAKEUPTIMER_EXTI_GENERATE_SWIT() (EXTI->SWIER1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1502
1503#if defined(DUAL_CORE)
1504
1509#define __HAL_RTC_WAKEUPTIMER_EXTID2_GET_FLAG() (EXTI_D2->PR1 & RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1510
1515#define __HAL_RTC_WAKEUPTIMER_EXTID2_CLEAR_FLAG() (EXTI_D2->PR1 = RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1516
1517#endif /* DUAL_CORE */
1518
1519/* ========================================================================== */
1520/* ##### RTC TimeStamp and Tamper Interrupt exported macros ##### */
1521/* ========================================================================== */
1522
1527#if defined(EXTI_D1)
1528#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT() (EXTI_D1->IMR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1529#else /* EXTI */
1530#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT() (EXTI->IMR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1531#endif /* EXTI_D1 */
1532
1537#if defined(EXTI_D1)
1538#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_IT() (EXTI_D1->IMR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
1539#else /* EXTI */
1540#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_IT() (EXTI->IMR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
1541#endif /* EXTI_D1 */
1542
1547#if defined(EXTI_D1)
1548#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_EVENT() (EXTI_D1->EMR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1549#else /* EXTI */
1550#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_EVENT() (EXTI->EMR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1551#endif /* EXTI_D1 */
1552
1557#if defined(EXTI_D1)
1558#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_EVENT() (EXTI_D1->EMR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
1559#else /* EXTI */
1560#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_EVENT() (EXTI->EMR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
1561#endif /* EXTI_D1 */
1562
1563#if defined(DUAL_CORE)
1568#define __HAL_RTC_TAMPER_TIMESTAMP_EXTID2_ENABLE_IT() (EXTI_D2->IMR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1569
1574#define __HAL_RTC_TAMPER_TIMESTAMP_EXTID2_DISABLE_IT() (EXTI_D2->IMR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
1575
1576
1581#define __HAL_RTC_TAMPER_TIMESTAMP_EXTID2_ENABLE_EVENT() (EXTI_D2->EMR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1582
1583
1588#define __HAL_RTC_TAMPER_TIMESTAMP_EXTID2_DISABLE_EVENT() (EXTI_D2->EMR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
1589
1590#endif /* DUAL_CORE */
1591
1596#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1597
1602#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
1603
1608#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1609
1614#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
1615
1620#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_FALLING_EDGE() do { \
1621 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE(); \
1622 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE(); \
1623 } while(0)
1624
1629#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_FALLING_EDGE() do { \
1630 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE(); \
1631 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE(); \
1632 } while(0)
1633
1638#if defined(EXTI_D1)
1639#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG() (EXTI_D1->PR1 & RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1640#else /* EXTI */
1641#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG() (EXTI->PR1 & RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1642#endif /* EXTI_D1 */
1643
1648#if defined(EXTI_D1)
1649#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG() (EXTI_D1->PR1 = RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1650#else /* EXTI */
1651#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG() (EXTI->PR1 = RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1652#endif /* EXTI_D1 */
1653
1654#if defined(DUAL_CORE)
1659#define __HAL_RTC_TAMPER_TIMESTAMP_EXTID2_GET_FLAG() (EXTI_D2->PR1 & RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
1660
1665#define __HAL_RTC_TAMPER_TIMESTAMP_EXTID2_CLEAR_FLAG() (EXTI_D2->PR1 = RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1666
1667#endif /* DUAL_CORE */
1668
1673#define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GENERATE_SWIT() (EXTI->SWIER1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
1674
1679/* Exported functions --------------------------------------------------------*/
1680
1686/* ========================================================================== */
1687/* ##### RTC TimeStamp exported functions ##### */
1688/* ========================================================================== */
1689
1690/* RTC TimeStamp functions ****************************************************/
1691
1696HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin);
1697HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin);
1698HAL_StatusTypeDef HAL_RTCEx_DeactivateTimeStamp(RTC_HandleTypeDef *hrtc);
1699HAL_StatusTypeDef HAL_RTCEx_SetInternalTimeStamp(RTC_HandleTypeDef *hrtc);
1700HAL_StatusTypeDef HAL_RTCEx_DeactivateInternalTimeStamp(RTC_HandleTypeDef *hrtc);
1701HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format);
1702void HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc);
1703void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc);
1704HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
1709/* ========================================================================== */
1710/* ##### RTC Tamper exported functions ##### */
1711/* ========================================================================== */
1712
1713/* RTC Tamper functions *******************************************************/
1714
1719HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper);
1720HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper);
1721HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper);
1722HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
1723HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
1724HAL_StatusTypeDef HAL_RTCEx_PollForTamper3Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
1725void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc);
1726void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc);
1727void HAL_RTCEx_Tamper3EventCallback(RTC_HandleTypeDef *hrtc);
1728#if defined(TAMP)
1729HAL_StatusTypeDef HAL_RTCEx_SetInternalTamper(RTC_HandleTypeDef *hrtc, RTC_InternalTamperTypeDef *sIntTamper);
1730HAL_StatusTypeDef HAL_RTCEx_SetInternalTamper_IT(RTC_HandleTypeDef *hrtc, RTC_InternalTamperTypeDef *sIntTamper);
1731HAL_StatusTypeDef HAL_RTCEx_DeactivateInternalTamper(RTC_HandleTypeDef *hrtc, uint32_t IntTamper);
1732HAL_StatusTypeDef HAL_RTCEx_PollForInternalTamperEvent(RTC_HandleTypeDef *hrtc, uint32_t IntTamper, uint32_t Timeout);
1733void HAL_RTCEx_InternalTamper1EventCallback(RTC_HandleTypeDef *hrtc);
1734void HAL_RTCEx_InternalTamper2EventCallback(RTC_HandleTypeDef *hrtc);
1735void HAL_RTCEx_InternalTamper3EventCallback(RTC_HandleTypeDef *hrtc);
1736void HAL_RTCEx_InternalTamper4EventCallback(RTC_HandleTypeDef *hrtc);
1737void HAL_RTCEx_InternalTamper5EventCallback(RTC_HandleTypeDef *hrtc);
1738void HAL_RTCEx_InternalTamper6EventCallback(RTC_HandleTypeDef *hrtc);
1739void HAL_RTCEx_InternalTamper8EventCallback(RTC_HandleTypeDef *hrtc);
1740HAL_StatusTypeDef HAL_RTCEx_SetActiveTampers(RTC_HandleTypeDef *hrtc, RTC_ActiveTampersTypeDef *sAllTamper);
1741HAL_StatusTypeDef HAL_RTCEx_SetActiveSeed(RTC_HandleTypeDef *hrtc, uint32_t *pSeed);
1742HAL_StatusTypeDef HAL_RTCEx_DeactivateActiveTampers(RTC_HandleTypeDef *hrtc);
1743#endif /* TAMP */
1744
1749/* ========================================================================== */
1750/* ##### RTC Wake-up exported functions ##### */
1751/* ========================================================================== */
1752
1753/* RTC Wake-up functions ******************************************************/
1754
1759HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
1760HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
1761HAL_StatusTypeDef HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc);
1762uint32_t HAL_RTCEx_GetWakeUpTimer(RTC_HandleTypeDef *hrtc);
1763void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc);
1765HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
1770/* ========================================================================== */
1771/* ##### Extended RTC Backup registers exported functions ##### */
1772/* ========================================================================== */
1773
1774/* Extended RTC Backup registers functions ************************************/
1775
1780void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data);
1781uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister);
1786/* ========================================================================== */
1787/* ##### Extended RTC Peripheral Control exported functions ##### */
1788/* ========================================================================== */
1789
1790/* Extended RTC Peripheral Control functions **********************************/
1791
1796HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmoothCalibMinusPulsesValue);
1797HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS);
1798HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput);
1799HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef *hrtc);
1800HAL_StatusTypeDef HAL_RTCEx_SetRefClock(RTC_HandleTypeDef *hrtc);
1801HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock(RTC_HandleTypeDef *hrtc);
1802HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef *hrtc);
1803HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow(RTC_HandleTypeDef *hrtc);
1804#if defined(TAMP)
1805HAL_StatusTypeDef HAL_RTCEx_MonotonicCounterIncrement(RTC_HandleTypeDef *hrtc, uint32_t Instance);
1806HAL_StatusTypeDef HAL_RTCEx_MonotonicCounterGet(RTC_HandleTypeDef *hrtc, uint32_t *Counter, uint32_t Instance);
1807#endif /* TAMP */
1812/* Extended RTC features functions *******************************************/
1813
1819void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc);
1820HAL_StatusTypeDef HAL_RTCEx_PollForAlarmBEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
1829/* Private types -------------------------------------------------------------*/
1830/* Private variables ---------------------------------------------------------*/
1831/* Private constants ---------------------------------------------------------*/
1836#define RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT EXTI_IMR1_IM18
1837#define RTC_EXTI_LINE_WAKEUPTIMER_EVENT EXTI_IMR1_IM19
1839/* Masks Definition */
1840#define RTC_TAMPER_X ((uint32_t) (RTC_TAMPER_1 | RTC_TAMPER_2 | RTC_TAMPER_3))
1841#define RTC_TAMPER_X_INTERRUPT ((uint32_t) (RTC_IT_TAMP1 | RTC_IT_TAMP2 | RTC_IT_TAMP3))
1842
1847/* Private macros ------------------------------------------------------------*/
1858/* ========================================================================== */
1859/* ##### Extended RTC Backup registers private macros ##### */
1860/* ========================================================================== */
1861
1862#define IS_RTC_BKP(__BKP__) ((__BKP__) < BKP_REG_NUMBER)
1863
1864/* ========================================================================== */
1865/* ##### RTC TimeStamp private macros ##### */
1866/* ========================================================================== */
1867
1868#define IS_TIMESTAMP_EDGE(EDGE) (((EDGE) == RTC_TIMESTAMPEDGE_RISING) || \
1869 ((EDGE) == RTC_TIMESTAMPEDGE_FALLING))
1870
1871#define IS_RTC_TIMESTAMP_PIN(PIN) (((PIN) == RTC_TIMESTAMPPIN_DEFAULT))
1872
1873/* ========================================================================== */
1874/* ##### RTC Wake-up private macros ##### */
1875/* ========================================================================== */
1876
1877#define IS_RTC_WAKEUP_CLOCK(CLOCK) (((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV16) || \
1878 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV8) || \
1879 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV4) || \
1880 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV2) || \
1881 ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_16BITS) || \
1882 ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_17BITS))
1883
1884#define IS_RTC_WAKEUP_COUNTER(COUNTER) ((COUNTER) <= RTC_WUTR_WUT)
1885
1886/* ========================================================================== */
1887/* ##### RTC Smooth Calibration private macros ##### */
1888/* ========================================================================== */
1889
1890#define IS_RTC_SMOOTH_CALIB_PERIOD(PERIOD) (((PERIOD) == RTC_SMOOTHCALIB_PERIOD_32SEC) || \
1891 ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_16SEC) || \
1892 ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_8SEC))
1893
1894#define IS_RTC_SMOOTH_CALIB_PLUS(PLUS) (((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_SET) || \
1895 ((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_RESET))
1896
1897#define IS_RTC_SMOOTH_CALIB_MINUS(VALUE) ((VALUE) <= RTC_CALR_CALM)
1898
1899/* ========================================================================== */
1900/* ##### Extended RTC Peripheral Control private macros ##### */
1901/* ========================================================================== */
1902
1903#define IS_RTC_SHIFT_ADD1S(SEL) (((SEL) == RTC_SHIFTADD1S_RESET) || \
1904 ((SEL) == RTC_SHIFTADD1S_SET))
1905
1906#define IS_RTC_SHIFT_SUBFS(FS) ((FS) <= RTC_SHIFTR_SUBFS)
1907
1908#define IS_RTC_CALIB_OUTPUT(OUTPUT) (((OUTPUT) == RTC_CALIBOUTPUT_512HZ) || \
1909 ((OUTPUT) == RTC_CALIBOUTPUT_1HZ))
1910
1911/* ========================================================================== */
1912/* ##### RTC Tamper private macros ##### */
1913/* ========================================================================== */
1914
1915#define IS_RTC_TAMPER(__TAMPER__) ((((__TAMPER__) & RTC_TAMPER_X) != 0x00U) && \
1916 (((__TAMPER__) & ~RTC_TAMPER_X) == 0x00U))
1917
1918#define IS_RTC_TAMPER_INTERRUPT(__INTERRUPT__) \
1919 ((((__INTERRUPT__) & ( RTC_TAMPER_X_INTERRUPT | RTC_IT_TAMPALL )) != 0x00U) && \
1920 (((__INTERRUPT__) & (~(RTC_TAMPER_X_INTERRUPT | RTC_IT_TAMPALL))) == 0x00U))
1921
1922#define IS_RTC_TAMPER_TRIGGER(__TRIGGER__) (((__TRIGGER__) == RTC_TAMPERTRIGGER_RISINGEDGE) || \
1923 ((__TRIGGER__) == RTC_TAMPERTRIGGER_FALLINGEDGE) || \
1924 ((__TRIGGER__) == RTC_TAMPERTRIGGER_LOWLEVEL) || \
1925 ((__TRIGGER__) == RTC_TAMPERTRIGGER_HIGHLEVEL))
1926
1927#define IS_RTC_TAMPER_ERASE_MODE(__MODE__) (((__MODE__) == RTC_TAMPER_ERASE_BACKUP_ENABLE) || \
1928 ((__MODE__) == RTC_TAMPER_ERASE_BACKUP_DISABLE))
1929
1930#define IS_RTC_TAMPER_MASKFLAG_STATE(__STATE__) (((__STATE__) == RTC_TAMPERMASK_FLAG_ENABLE) || \
1931 ((__STATE__) == RTC_TAMPERMASK_FLAG_DISABLE))
1932
1933#define IS_RTC_TAMPER_FILTER(__FILTER__) (((__FILTER__) == RTC_TAMPERFILTER_DISABLE) || \
1934 ((__FILTER__) == RTC_TAMPERFILTER_2SAMPLE) || \
1935 ((__FILTER__) == RTC_TAMPERFILTER_4SAMPLE) || \
1936 ((__FILTER__) == RTC_TAMPERFILTER_8SAMPLE))
1937
1938#define IS_RTC_TAMPER_SAMPLING_FREQ(__FREQ__) (((__FREQ__) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768)|| \
1939 ((__FREQ__) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384)|| \
1940 ((__FREQ__) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192) || \
1941 ((__FREQ__) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096) || \
1942 ((__FREQ__) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048) || \
1943 ((__FREQ__) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024) || \
1944 ((__FREQ__) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512) || \
1945 ((__FREQ__) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256))
1946
1947#define IS_RTC_TAMPER_PRECHARGE_DURATION(__DURATION__) (((__DURATION__) == RTC_TAMPERPRECHARGEDURATION_1RTCCLK) || \
1948 ((__DURATION__) == RTC_TAMPERPRECHARGEDURATION_2RTCCLK) || \
1949 ((__DURATION__) == RTC_TAMPERPRECHARGEDURATION_4RTCCLK) || \
1950 ((__DURATION__) == RTC_TAMPERPRECHARGEDURATION_8RTCCLK))
1951
1952#define IS_RTC_TAMPER_PULLUP_STATE(__STATE__) (((__STATE__) == RTC_TAMPER_PULLUP_ENABLE) || \
1953 ((__STATE__) == RTC_TAMPER_PULLUP_DISABLE))
1954
1955#define IS_RTC_TAMPER_TIMESTAMPONTAMPER_DETECTION(__DETECTION__) (((__DETECTION__) == RTC_TIMESTAMPONTAMPERDETECTION_ENABLE) || \
1956 ((__DETECTION__) == RTC_TIMESTAMPONTAMPERDETECTION_DISABLE))
1957
1958#if defined(TAMP)
1959#define IS_RTC_TAMPER_TAMPERDETECTIONOUTPUT(__MODE__) (((__MODE__) == RTC_TAMPERDETECTIONOUTPUT_ENABLE) || \
1960 ((__MODE__) == RTC_TAMPERDETECTIONOUTPUT_DISABLE))
1961#endif /* TAMP */
1962
1963#define IS_RTC_TAMPER_FILTER_CONFIG_CORRECT(FILTER, TRIGGER) \
1964 ( ( ((FILTER) != RTC_TAMPERFILTER_DISABLE) \
1965 && ( ((TRIGGER) == RTC_TAMPERTRIGGER_LOWLEVEL) \
1966 || ((TRIGGER) == RTC_TAMPERTRIGGER_HIGHLEVEL))) \
1967 || ( ((FILTER) == RTC_TAMPERFILTER_DISABLE) \
1968 && ( ((TRIGGER) == RTC_TAMPERTRIGGER_RISINGEDGE) \
1969 || ((TRIGGER) == RTC_TAMPERTRIGGER_FALLINGEDGE))))
1970
1971#define IS_RTC_INTERNAL_TAMPER(__INT_TAMPER__) ((((__INT_TAMPER__) & RTC_INT_TAMPER_ALL) != 0x00U) && \
1972 (((__INT_TAMPER__) & ~RTC_INT_TAMPER_ALL) == 0x00U))
1973
1990#ifdef __cplusplus
1991}
1992#endif /* __cplusplus */
1993
1994#endif /* STM32H7xx_HAL_RTC_EX_H */
1995
void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)
Wake Up Timer Event Callback in non blocking mode.
Definition: stm32h7xx_hal_timebase_rtc_wakeup_template.c:276
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
Definition: stm32h7xx_hal_def.h:47
RTC Date structure definition.
Definition: stm32h7xx_hal_rtc.h:129
RTC Handle Structure definition.
Definition: stm32h7xx_hal_rtc.h:176
Definition: stm32h7xx_hal_rtc_ex.h:51
uint32_t Trigger
Definition: stm32h7xx_hal_rtc_ex.h:58
uint32_t SamplingFrequency
Definition: stm32h7xx_hal_rtc_ex.h:70
uint32_t Filter
Definition: stm32h7xx_hal_rtc_ex.h:67
uint32_t TamperPullUp
Definition: stm32h7xx_hal_rtc_ex.h:76
uint32_t Tamper
Definition: stm32h7xx_hal_rtc_ex.h:52
uint32_t NoErase
Definition: stm32h7xx_hal_rtc_ex.h:61
uint32_t PrechargeDuration
Definition: stm32h7xx_hal_rtc_ex.h:73
uint32_t Interrupt
Definition: stm32h7xx_hal_rtc_ex.h:55
uint32_t TimeStampOnTamperDetection
Definition: stm32h7xx_hal_rtc_ex.h:79
uint32_t MaskFlag
Definition: stm32h7xx_hal_rtc_ex.h:64
RTC Time structure definition.
Definition: stm32h7xx_hal_rtc.h:93