The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
Parent:
TARGET_DISCO_F303VC/TARGET_STM/TARGET_STM32F3/device/stm32f3xx_hal_rtc_ex.h@168:b9e159c1930a
mbed library. Release version 164

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 163:e59c8e839560 1 /**
AnnaBridge 163:e59c8e839560 2 ******************************************************************************
AnnaBridge 163:e59c8e839560 3 * @file stm32f3xx_hal_rtc_ex.h
AnnaBridge 163:e59c8e839560 4 * @author MCD Application Team
AnnaBridge 163:e59c8e839560 5 * @brief Header file of RTC HAL Extended module.
AnnaBridge 163:e59c8e839560 6 ******************************************************************************
AnnaBridge 163:e59c8e839560 7 * @attention
AnnaBridge 163:e59c8e839560 8 *
AnnaBridge 163:e59c8e839560 9 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 163:e59c8e839560 10 *
AnnaBridge 163:e59c8e839560 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 163:e59c8e839560 12 * are permitted provided that the following conditions are met:
AnnaBridge 163:e59c8e839560 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 163:e59c8e839560 14 * this list of conditions and the following disclaimer.
AnnaBridge 163:e59c8e839560 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 163:e59c8e839560 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 163:e59c8e839560 17 * and/or other materials provided with the distribution.
AnnaBridge 163:e59c8e839560 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 163:e59c8e839560 19 * may be used to endorse or promote products derived from this software
AnnaBridge 163:e59c8e839560 20 * without specific prior written permission.
AnnaBridge 163:e59c8e839560 21 *
AnnaBridge 163:e59c8e839560 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 163:e59c8e839560 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 163:e59c8e839560 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 163:e59c8e839560 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 163:e59c8e839560 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 163:e59c8e839560 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 163:e59c8e839560 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 163:e59c8e839560 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 163:e59c8e839560 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 163:e59c8e839560 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 163:e59c8e839560 32 *
AnnaBridge 163:e59c8e839560 33 ******************************************************************************
AnnaBridge 163:e59c8e839560 34 */
AnnaBridge 163:e59c8e839560 35
AnnaBridge 163:e59c8e839560 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 163:e59c8e839560 37 #ifndef __STM32F3xx_HAL_RTC_EX_H
AnnaBridge 163:e59c8e839560 38 #define __STM32F3xx_HAL_RTC_EX_H
AnnaBridge 163:e59c8e839560 39
AnnaBridge 163:e59c8e839560 40 #ifdef __cplusplus
AnnaBridge 163:e59c8e839560 41 extern "C" {
AnnaBridge 163:e59c8e839560 42 #endif
AnnaBridge 163:e59c8e839560 43
AnnaBridge 163:e59c8e839560 44 /* Includes ------------------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 45 #include "stm32f3xx_hal_def.h"
AnnaBridge 163:e59c8e839560 46
AnnaBridge 163:e59c8e839560 47 /** @addtogroup STM32F3xx_HAL_Driver
AnnaBridge 163:e59c8e839560 48 * @{
AnnaBridge 163:e59c8e839560 49 */
AnnaBridge 163:e59c8e839560 50
AnnaBridge 163:e59c8e839560 51 /** @defgroup RTCEx RTCEx
AnnaBridge 163:e59c8e839560 52 * @{
AnnaBridge 163:e59c8e839560 53 */
AnnaBridge 163:e59c8e839560 54
AnnaBridge 163:e59c8e839560 55 /* Exported types ------------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 56
AnnaBridge 163:e59c8e839560 57 /** @defgroup RTCEx_Exported_Types RTC Extended Exported Types
AnnaBridge 163:e59c8e839560 58 * @{
AnnaBridge 163:e59c8e839560 59 */
AnnaBridge 163:e59c8e839560 60
AnnaBridge 163:e59c8e839560 61 /**
AnnaBridge 163:e59c8e839560 62 * @brief RTC Tamper structure definition
AnnaBridge 163:e59c8e839560 63 */
AnnaBridge 163:e59c8e839560 64 typedef struct
AnnaBridge 163:e59c8e839560 65 {
AnnaBridge 163:e59c8e839560 66 uint32_t Tamper; /*!< Specifies the Tamper Pin.
AnnaBridge 163:e59c8e839560 67 This parameter can be a value of @ref RTCEx_Tamper_Pins_Definitions */
AnnaBridge 163:e59c8e839560 68
AnnaBridge 163:e59c8e839560 69 uint32_t Trigger; /*!< Specifies the Tamper Trigger.
AnnaBridge 163:e59c8e839560 70 This parameter can be a value of @ref RTCEx_Tamper_Trigger_Definitions */
AnnaBridge 163:e59c8e839560 71
AnnaBridge 163:e59c8e839560 72 uint32_t Filter; /*!< Specifies the RTC Filter Tamper.
AnnaBridge 163:e59c8e839560 73 This parameter can be a value of @ref RTCEx_Tamper_Filter_Definitions */
AnnaBridge 163:e59c8e839560 74
AnnaBridge 163:e59c8e839560 75 uint32_t SamplingFrequency; /*!< Specifies the sampling frequency.
AnnaBridge 163:e59c8e839560 76 This parameter can be a value of @ref RTCEx_Tamper_Sampling_Frequencies_Definitions */
AnnaBridge 163:e59c8e839560 77
AnnaBridge 163:e59c8e839560 78 uint32_t PrechargeDuration; /*!< Specifies the Precharge Duration .
AnnaBridge 163:e59c8e839560 79 This parameter can be a value of @ref RTCEx_Tamper_Pin_Precharge_Duration_Definitions */
AnnaBridge 163:e59c8e839560 80
AnnaBridge 163:e59c8e839560 81 uint32_t TamperPullUp; /*!< Specifies the Tamper PullUp .
AnnaBridge 163:e59c8e839560 82 This parameter can be a value of @ref RTCEx_Tamper_Pull_UP_Definitions */
AnnaBridge 163:e59c8e839560 83
AnnaBridge 163:e59c8e839560 84 uint32_t TimeStampOnTamperDetection; /*!< Specifies the TimeStampOnTamperDetection.
AnnaBridge 163:e59c8e839560 85 This parameter can be a value of @ref RTCEx_Tamper_TimeStampOnTamperDetection_Definitions */
AnnaBridge 163:e59c8e839560 86 }RTC_TamperTypeDef;
AnnaBridge 163:e59c8e839560 87 /**
AnnaBridge 163:e59c8e839560 88 * @}
AnnaBridge 163:e59c8e839560 89 */
AnnaBridge 163:e59c8e839560 90
AnnaBridge 163:e59c8e839560 91 /* Exported constants --------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 92 /** @defgroup RTCEx_Exported_Constants RTC Extended Exported Constants
AnnaBridge 163:e59c8e839560 93 * @{
AnnaBridge 163:e59c8e839560 94 */
AnnaBridge 163:e59c8e839560 95
AnnaBridge 163:e59c8e839560 96 /** @defgroup RTCEx_Output_selection_Definitions RTC Extended Output Selection Definition
AnnaBridge 163:e59c8e839560 97 * @{
AnnaBridge 163:e59c8e839560 98 */
AnnaBridge 168:b9e159c1930a 99 #define RTC_OUTPUT_DISABLE 0x00000000U
AnnaBridge 163:e59c8e839560 100 #define RTC_OUTPUT_ALARMA RTC_CR_OSEL_0
AnnaBridge 163:e59c8e839560 101 #define RTC_OUTPUT_ALARMB RTC_CR_OSEL_1
AnnaBridge 163:e59c8e839560 102 #define RTC_OUTPUT_WAKEUP RTC_CR_OSEL
AnnaBridge 163:e59c8e839560 103 /**
AnnaBridge 163:e59c8e839560 104 * @}
AnnaBridge 163:e59c8e839560 105 */
AnnaBridge 163:e59c8e839560 106
AnnaBridge 163:e59c8e839560 107 /** @defgroup RTCEx_Backup_Registers_Definitions RTC Extended Backup Registers Definition
AnnaBridge 163:e59c8e839560 108 * @{
AnnaBridge 163:e59c8e839560 109 */
AnnaBridge 163:e59c8e839560 110 #if RTC_BKP_NUMBER > 0U
AnnaBridge 168:b9e159c1930a 111 #define RTC_BKP_DR0 0x00000000U
AnnaBridge 168:b9e159c1930a 112 #define RTC_BKP_DR1 0x00000001U
AnnaBridge 168:b9e159c1930a 113 #define RTC_BKP_DR2 0x00000002U
AnnaBridge 168:b9e159c1930a 114 #define RTC_BKP_DR3 0x00000003U
AnnaBridge 168:b9e159c1930a 115 #define RTC_BKP_DR4 0x00000004U
AnnaBridge 163:e59c8e839560 116 #endif /* RTC_BKP_NUMBER > 0U */
AnnaBridge 163:e59c8e839560 117
AnnaBridge 163:e59c8e839560 118 #if RTC_BKP_NUMBER > 5U
AnnaBridge 168:b9e159c1930a 119 #define RTC_BKP_DR5 0x00000005U
AnnaBridge 168:b9e159c1930a 120 #define RTC_BKP_DR6 0x00000006U
AnnaBridge 168:b9e159c1930a 121 #define RTC_BKP_DR7 0x00000007U
AnnaBridge 168:b9e159c1930a 122 #define RTC_BKP_DR8 0x00000008U
AnnaBridge 168:b9e159c1930a 123 #define RTC_BKP_DR9 0x00000009U
AnnaBridge 168:b9e159c1930a 124 #define RTC_BKP_DR10 0x0000000AU
AnnaBridge 168:b9e159c1930a 125 #define RTC_BKP_DR11 0x0000000BU
AnnaBridge 168:b9e159c1930a 126 #define RTC_BKP_DR12 0x0000000CU
AnnaBridge 168:b9e159c1930a 127 #define RTC_BKP_DR13 0x0000000DU
AnnaBridge 168:b9e159c1930a 128 #define RTC_BKP_DR14 0x0000000EU
AnnaBridge 168:b9e159c1930a 129 #define RTC_BKP_DR15 0x0000000FU
AnnaBridge 163:e59c8e839560 130 #endif /* RTC_BKP_NUMBER > 5U */
AnnaBridge 163:e59c8e839560 131
AnnaBridge 163:e59c8e839560 132 #if RTC_BKP_NUMBER > 16U
AnnaBridge 168:b9e159c1930a 133 #define RTC_BKP_DR16 0x00000010U
AnnaBridge 168:b9e159c1930a 134 #define RTC_BKP_DR17 0x00000011U
AnnaBridge 168:b9e159c1930a 135 #define RTC_BKP_DR18 0x00000012U
AnnaBridge 168:b9e159c1930a 136 #define RTC_BKP_DR19 0x00000013U
AnnaBridge 163:e59c8e839560 137 #endif /* RTC_BKP_NUMBER > 16U */
AnnaBridge 163:e59c8e839560 138
AnnaBridge 163:e59c8e839560 139 #if RTC_BKP_NUMBER > 20U
AnnaBridge 168:b9e159c1930a 140 #define RTC_BKP_DR20 0x00000014U
AnnaBridge 168:b9e159c1930a 141 #define RTC_BKP_DR21 0x00000015U
AnnaBridge 168:b9e159c1930a 142 #define RTC_BKP_DR22 0x00000016U
AnnaBridge 168:b9e159c1930a 143 #define RTC_BKP_DR23 0x00000017U
AnnaBridge 168:b9e159c1930a 144 #define RTC_BKP_DR24 0x00000018U
AnnaBridge 168:b9e159c1930a 145 #define RTC_BKP_DR25 0x00000019U
AnnaBridge 168:b9e159c1930a 146 #define RTC_BKP_DR26 0x0000001AU
AnnaBridge 168:b9e159c1930a 147 #define RTC_BKP_DR27 0x0000001BU
AnnaBridge 168:b9e159c1930a 148 #define RTC_BKP_DR28 0x0000001CU
AnnaBridge 168:b9e159c1930a 149 #define RTC_BKP_DR29 0x0000001DU
AnnaBridge 168:b9e159c1930a 150 #define RTC_BKP_DR30 0x0000001EU
AnnaBridge 168:b9e159c1930a 151 #define RTC_BKP_DR31 0x0000001FU
AnnaBridge 163:e59c8e839560 152 #endif /* RTC_BKP_NUMBER > 20U */
AnnaBridge 163:e59c8e839560 153 /**
AnnaBridge 163:e59c8e839560 154 * @}
AnnaBridge 163:e59c8e839560 155 */
AnnaBridge 163:e59c8e839560 156
AnnaBridge 163:e59c8e839560 157 /** @defgroup RTCEx_Time_Stamp_Edges_definitions RTC Extended Time Stamp Edges definition
AnnaBridge 163:e59c8e839560 158 * @{
AnnaBridge 163:e59c8e839560 159 */
AnnaBridge 168:b9e159c1930a 160 #define RTC_TIMESTAMPEDGE_RISING 0x00000000U
AnnaBridge 163:e59c8e839560 161 #define RTC_TIMESTAMPEDGE_FALLING RTC_CR_TSEDGE
AnnaBridge 163:e59c8e839560 162 /**
AnnaBridge 163:e59c8e839560 163 * @}
AnnaBridge 163:e59c8e839560 164 */
AnnaBridge 163:e59c8e839560 165
AnnaBridge 163:e59c8e839560 166 /** @defgroup RTCEx_TimeStamp_Pin_Selections RTC Extended TimeStamp Pin Selection
AnnaBridge 163:e59c8e839560 167 * @{
AnnaBridge 163:e59c8e839560 168 */
AnnaBridge 168:b9e159c1930a 169 #define RTC_TIMESTAMPPIN_DEFAULT 0x00000000U
AnnaBridge 163:e59c8e839560 170 /**
AnnaBridge 163:e59c8e839560 171 * @}
AnnaBridge 163:e59c8e839560 172 */
AnnaBridge 163:e59c8e839560 173
AnnaBridge 163:e59c8e839560 174 /** @defgroup RTCEx_Tamper_Pins_Definitions RTC Extended Tamper Pins Definition
AnnaBridge 163:e59c8e839560 175 * @{
AnnaBridge 163:e59c8e839560 176 */
AnnaBridge 163:e59c8e839560 177 #define RTC_TAMPER_1 RTC_TAFCR_TAMP1E
AnnaBridge 163:e59c8e839560 178 #define RTC_TAMPER_2 RTC_TAFCR_TAMP2E
AnnaBridge 163:e59c8e839560 179 #if defined(RTC_TAMPER3_SUPPORT)
AnnaBridge 163:e59c8e839560 180 #define RTC_TAMPER_3 RTC_TAFCR_TAMP3E
AnnaBridge 163:e59c8e839560 181 #endif /* RTC_TAMPER3_SUPPORT */
AnnaBridge 163:e59c8e839560 182 /**
AnnaBridge 163:e59c8e839560 183 * @}
AnnaBridge 163:e59c8e839560 184 */
AnnaBridge 163:e59c8e839560 185
AnnaBridge 163:e59c8e839560 186
AnnaBridge 163:e59c8e839560 187 /** @defgroup RTCEx_Tamper_Trigger_Definitions RTC Extended Tamper Trigger Definition
AnnaBridge 163:e59c8e839560 188 * @{
AnnaBridge 163:e59c8e839560 189 */
AnnaBridge 168:b9e159c1930a 190 #define RTC_TAMPERTRIGGER_RISINGEDGE 0x00000000U
AnnaBridge 163:e59c8e839560 191 #define RTC_TAMPERTRIGGER_FALLINGEDGE RTC_TAFCR_TAMP1TRG
AnnaBridge 163:e59c8e839560 192 #define RTC_TAMPERTRIGGER_LOWLEVEL RTC_TAMPERTRIGGER_RISINGEDGE
AnnaBridge 163:e59c8e839560 193 #define RTC_TAMPERTRIGGER_HIGHLEVEL RTC_TAMPERTRIGGER_FALLINGEDGE
AnnaBridge 163:e59c8e839560 194 /**
AnnaBridge 163:e59c8e839560 195 * @}
AnnaBridge 163:e59c8e839560 196 */
AnnaBridge 163:e59c8e839560 197
AnnaBridge 163:e59c8e839560 198 /** @defgroup RTCEx_Tamper_Filter_Definitions RTC Extended Tamper Filter Definition
AnnaBridge 163:e59c8e839560 199 * @{
AnnaBridge 163:e59c8e839560 200 */
AnnaBridge 168:b9e159c1930a 201 #define RTC_TAMPERFILTER_DISABLE 0x00000000U /*!< Tamper filter is disabled */
AnnaBridge 163:e59c8e839560 202
AnnaBridge 163:e59c8e839560 203 #define RTC_TAMPERFILTER_2SAMPLE RTC_TAFCR_TAMPFLT_0 /*!< Tamper is activated after 2
AnnaBridge 163:e59c8e839560 204 consecutive samples at the active level */
AnnaBridge 168:b9e159c1930a 205 #define RTC_TAMPERFILTER_4SAMPLE RTC_TAFCR_TAMPFLT_1 /*!< Tamper is activated after 4
AnnaBridge 163:e59c8e839560 206 consecutive samples at the active level */
AnnaBridge 168:b9e159c1930a 207 #define RTC_TAMPERFILTER_8SAMPLE RTC_TAFCR_TAMPFLT /*!< Tamper is activated after 8
AnnaBridge 163:e59c8e839560 208 consecutive samples at the active level. */
AnnaBridge 163:e59c8e839560 209 /**
AnnaBridge 163:e59c8e839560 210 * @}
AnnaBridge 163:e59c8e839560 211 */
AnnaBridge 163:e59c8e839560 212
AnnaBridge 163:e59c8e839560 213 /** @defgroup RTCEx_Tamper_Sampling_Frequencies_Definitions RTC Extended Tamper Sampling Frequencies Definition
AnnaBridge 163:e59c8e839560 214 * @{
AnnaBridge 163:e59c8e839560 215 */
AnnaBridge 168:b9e159c1930a 216 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768 0x00000000U /*!< Each of the tamper inputs are sampled
AnnaBridge 163:e59c8e839560 217 with a frequency = RTCCLK / 32768U */
AnnaBridge 163:e59c8e839560 218 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384 RTC_TAFCR_TAMPFREQ_0 /*!< Each of the tamper inputs are sampled
AnnaBridge 163:e59c8e839560 219 with a frequency = RTCCLK / 16384U */
AnnaBridge 163:e59c8e839560 220 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192 RTC_TAFCR_TAMPFREQ_1 /*!< Each of the tamper inputs are sampled
AnnaBridge 163:e59c8e839560 221 with a frequency = RTCCLK / 8192 */
AnnaBridge 163:e59c8e839560 222 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096 (RTC_TAFCR_TAMPFREQ_0 | RTC_TAFCR_TAMPFREQ_1) /*!< Each of the tamper inputs are sampled
AnnaBridge 163:e59c8e839560 223 with a frequency = RTCCLK / 4096 */
AnnaBridge 163:e59c8e839560 224 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048 RTC_TAFCR_TAMPFREQ_2 /*!< Each of the tamper inputs are sampled
AnnaBridge 163:e59c8e839560 225 with a frequency = RTCCLK / 2048 */
AnnaBridge 163:e59c8e839560 226 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024 (RTC_TAFCR_TAMPFREQ_0 | RTC_TAFCR_TAMPFREQ_2) /*!< Each of the tamper inputs are sampled
AnnaBridge 163:e59c8e839560 227 with a frequency = RTCCLK / 1024 */
AnnaBridge 163:e59c8e839560 228 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512 (RTC_TAFCR_TAMPFREQ_1 | RTC_TAFCR_TAMPFREQ_2) /*!< Each of the tamper inputs are sampled
AnnaBridge 163:e59c8e839560 229 with a frequency = RTCCLK / 512 */
AnnaBridge 163:e59c8e839560 230 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256 (RTC_TAFCR_TAMPFREQ_0 | RTC_TAFCR_TAMPFREQ_1 | RTC_TAFCR_TAMPFREQ_2) /*!< Each of the tamper inputs are sampled
AnnaBridge 163:e59c8e839560 231 with a frequency = RTCCLK / 256 */
AnnaBridge 163:e59c8e839560 232 /**
AnnaBridge 163:e59c8e839560 233 * @}
AnnaBridge 163:e59c8e839560 234 */
AnnaBridge 163:e59c8e839560 235
AnnaBridge 163:e59c8e839560 236 /** @defgroup RTCEx_Tamper_Pin_Precharge_Duration_Definitions RTC Extended Tamper Pin Precharge Duration Definition
AnnaBridge 163:e59c8e839560 237 * @{
AnnaBridge 163:e59c8e839560 238 */
AnnaBridge 168:b9e159c1930a 239 #define RTC_TAMPERPRECHARGEDURATION_1RTCCLK 0x00000000U /*!< Tamper pins are pre-charged before
AnnaBridge 163:e59c8e839560 240 sampling during 1 RTCCLK cycle */
AnnaBridge 163:e59c8e839560 241 #define RTC_TAMPERPRECHARGEDURATION_2RTCCLK RTC_TAFCR_TAMPPRCH_0 /*!< Tamper pins are pre-charged before
AnnaBridge 163:e59c8e839560 242 sampling during 2 RTCCLK cycles */
AnnaBridge 163:e59c8e839560 243 #define RTC_TAMPERPRECHARGEDURATION_4RTCCLK RTC_TAFCR_TAMPPRCH_1 /*!< Tamper pins are pre-charged before
AnnaBridge 163:e59c8e839560 244 sampling during 4 RTCCLK cycles */
AnnaBridge 163:e59c8e839560 245 #define RTC_TAMPERPRECHARGEDURATION_8RTCCLK (RTC_TAFCR_TAMPPRCH_0 | RTC_TAFCR_TAMPPRCH_1) /*!< Tamper pins are pre-charged before
AnnaBridge 163:e59c8e839560 246 sampling during 8 RTCCLK cycles */
AnnaBridge 163:e59c8e839560 247 /**
AnnaBridge 163:e59c8e839560 248 * @}
AnnaBridge 163:e59c8e839560 249 */
AnnaBridge 163:e59c8e839560 250
AnnaBridge 163:e59c8e839560 251 /** @defgroup RTCEx_Tamper_TimeStampOnTamperDetection_Definitions RTC Extended Tamper TimeStampOnTamperDetection Definition
AnnaBridge 163:e59c8e839560 252 * @{
AnnaBridge 163:e59c8e839560 253 */
AnnaBridge 163:e59c8e839560 254 #define RTC_TIMESTAMPONTAMPERDETECTION_ENABLE ((uint32_t)RTC_TAFCR_TAMPTS) /*!< TimeStamp on Tamper Detection event saved */
AnnaBridge 168:b9e159c1930a 255 #define RTC_TIMESTAMPONTAMPERDETECTION_DISABLE 0x00000000U /*!< TimeStamp on Tamper Detection event is not saved */
AnnaBridge 163:e59c8e839560 256 /**
AnnaBridge 163:e59c8e839560 257 * @}
AnnaBridge 163:e59c8e839560 258 */
AnnaBridge 163:e59c8e839560 259
AnnaBridge 163:e59c8e839560 260 /** @defgroup RTCEx_Tamper_Pull_UP_Definitions RTC Extended Tamper Pull UP Definition
AnnaBridge 163:e59c8e839560 261 * @{
AnnaBridge 163:e59c8e839560 262 */
AnnaBridge 168:b9e159c1930a 263 #define RTC_TAMPER_PULLUP_ENABLE 0x00000000U /*!< Tamper pins are pre-charged before sampling */
AnnaBridge 163:e59c8e839560 264 #define RTC_TAMPER_PULLUP_DISABLE ((uint32_t)RTC_TAFCR_TAMPPUDIS) /*!< Tamper pins are not pre-charged before sampling */
AnnaBridge 163:e59c8e839560 265 /**
AnnaBridge 163:e59c8e839560 266 * @}
AnnaBridge 163:e59c8e839560 267 */
AnnaBridge 163:e59c8e839560 268
AnnaBridge 163:e59c8e839560 269 /** @defgroup RTCEx_Wakeup_Timer_Definitions RTC Extended Wakeup Timer Definition
AnnaBridge 163:e59c8e839560 270 * @{
AnnaBridge 163:e59c8e839560 271 */
AnnaBridge 168:b9e159c1930a 272 #define RTC_WAKEUPCLOCK_RTCCLK_DIV16 0x00000000U
AnnaBridge 163:e59c8e839560 273 #define RTC_WAKEUPCLOCK_RTCCLK_DIV8 RTC_CR_WUCKSEL_0
AnnaBridge 163:e59c8e839560 274 #define RTC_WAKEUPCLOCK_RTCCLK_DIV4 RTC_CR_WUCKSEL_1
AnnaBridge 163:e59c8e839560 275 #define RTC_WAKEUPCLOCK_RTCCLK_DIV2 (RTC_CR_WUCKSEL_0 | RTC_CR_WUCKSEL_1)
AnnaBridge 163:e59c8e839560 276 #define RTC_WAKEUPCLOCK_CK_SPRE_16BITS (RTC_CR_WUCKSEL_2)
AnnaBridge 163:e59c8e839560 277 #define RTC_WAKEUPCLOCK_CK_SPRE_17BITS (RTC_CR_WUCKSEL_1 | RTC_CR_WUCKSEL_2)
AnnaBridge 163:e59c8e839560 278 /**
AnnaBridge 163:e59c8e839560 279 * @}
AnnaBridge 163:e59c8e839560 280 */
AnnaBridge 163:e59c8e839560 281
AnnaBridge 163:e59c8e839560 282 /** @defgroup RTCEx_Smooth_calib_period_Definitions RTC Extended Smooth calib period Definition
AnnaBridge 163:e59c8e839560 283 * @{
AnnaBridge 163:e59c8e839560 284 */
AnnaBridge 168:b9e159c1930a 285 #define RTC_SMOOTHCALIB_PERIOD_32SEC 0x00000000U /*!< If RTCCLK = 32768 Hz, Smooth calibation
AnnaBridge 163:e59c8e839560 286 period is 32s, else 2exp20 RTCCLK seconds */
AnnaBridge 168:b9e159c1930a 287 #define RTC_SMOOTHCALIB_PERIOD_16SEC RTC_CALR_CALW16 /*!< If RTCCLK = 32768 Hz, Smooth calibation
AnnaBridge 163:e59c8e839560 288 period is 16s, else 2exp19 RTCCLK seconds */
AnnaBridge 168:b9e159c1930a 289 #define RTC_SMOOTHCALIB_PERIOD_8SEC RTC_CALR_CALW8 /*!< If RTCCLK = 32768 Hz, Smooth calibation
AnnaBridge 163:e59c8e839560 290 period is 8s, else 2exp18 RTCCLK seconds */
AnnaBridge 163:e59c8e839560 291 /**
AnnaBridge 163:e59c8e839560 292 * @}
AnnaBridge 163:e59c8e839560 293 */
AnnaBridge 163:e59c8e839560 294
AnnaBridge 163:e59c8e839560 295 /** @defgroup RTCEx_Smooth_calib_Plus_pulses_Definitions RTC Extended Smooth calib Plus pulses Definition
AnnaBridge 163:e59c8e839560 296 * @{
AnnaBridge 163:e59c8e839560 297 */
AnnaBridge 168:b9e159c1930a 298 #define RTC_SMOOTHCALIB_PLUSPULSES_RESET 0x00000000U /*!< The number of RTCCLK pulses subbstited
AnnaBridge 168:b9e159c1930a 299 during a 32-second window = CALM[8:0] */
AnnaBridge 168:b9e159c1930a 300 #define RTC_SMOOTHCALIB_PLUSPULSES_SET RTC_CALR_CALP /*!< The number of RTCCLK pulses added
AnnaBridge 168:b9e159c1930a 301 during a X -second window = Y - CALM[8:0]
AnnaBridge 168:b9e159c1930a 302 with Y = 512U, 256U, 128 when X = 32U, 16U, 8U */
AnnaBridge 163:e59c8e839560 303 /**
AnnaBridge 163:e59c8e839560 304 * @}
AnnaBridge 163:e59c8e839560 305 */
AnnaBridge 163:e59c8e839560 306
AnnaBridge 163:e59c8e839560 307 /** @defgroup RTCEx_Calib_Output_selection_Definitions RTC Extended Calib Output selection Definition
AnnaBridge 163:e59c8e839560 308 * @{
AnnaBridge 163:e59c8e839560 309 */
AnnaBridge 168:b9e159c1930a 310 #define RTC_CALIBOUTPUT_512HZ 0x00000000U
AnnaBridge 163:e59c8e839560 311 #define RTC_CALIBOUTPUT_1HZ RTC_CR_COSEL
AnnaBridge 163:e59c8e839560 312 /**
AnnaBridge 163:e59c8e839560 313 * @}
AnnaBridge 163:e59c8e839560 314 */
AnnaBridge 163:e59c8e839560 315
AnnaBridge 163:e59c8e839560 316 /** @defgroup RTCEx_Add_1_Second_Parameter_Definition RTC Extended Add 1 Second Parameter Definition
AnnaBridge 163:e59c8e839560 317 * @{
AnnaBridge 163:e59c8e839560 318 */
AnnaBridge 168:b9e159c1930a 319 #define RTC_SHIFTADD1S_RESET 0x00000000U
AnnaBridge 163:e59c8e839560 320 #define RTC_SHIFTADD1S_SET RTC_SHIFTR_ADD1S
AnnaBridge 163:e59c8e839560 321 /**
AnnaBridge 163:e59c8e839560 322 * @}
AnnaBridge 163:e59c8e839560 323 */
AnnaBridge 163:e59c8e839560 324
AnnaBridge 163:e59c8e839560 325 /**
AnnaBridge 163:e59c8e839560 326 * @}
AnnaBridge 163:e59c8e839560 327 */
AnnaBridge 163:e59c8e839560 328
AnnaBridge 163:e59c8e839560 329 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 330 /** @defgroup RTCEx_Exported_Macros RTC Extended Exported Macros
AnnaBridge 163:e59c8e839560 331 * @{
AnnaBridge 163:e59c8e839560 332 */
AnnaBridge 163:e59c8e839560 333
AnnaBridge 163:e59c8e839560 334 /* ---------------------------------WAKEUPTIMER---------------------------------*/
AnnaBridge 163:e59c8e839560 335 /** @defgroup RTCEx_WakeUp_Timer RTC Extended WakeUp Timer
AnnaBridge 163:e59c8e839560 336 * @{
AnnaBridge 163:e59c8e839560 337 */
AnnaBridge 163:e59c8e839560 338 /**
AnnaBridge 163:e59c8e839560 339 * @brief Enable the RTC WakeUp Timer peripheral.
AnnaBridge 168:b9e159c1930a 340 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 341 * @retval None
AnnaBridge 163:e59c8e839560 342 */
AnnaBridge 163:e59c8e839560 343 #define __HAL_RTC_WAKEUPTIMER_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_WUTE))
AnnaBridge 163:e59c8e839560 344
AnnaBridge 163:e59c8e839560 345 /**
AnnaBridge 163:e59c8e839560 346 * @brief Disable the RTC WakeUp Timer peripheral.
AnnaBridge 168:b9e159c1930a 347 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 348 * @retval None
AnnaBridge 163:e59c8e839560 349 */
AnnaBridge 163:e59c8e839560 350 #define __HAL_RTC_WAKEUPTIMER_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_WUTE))
AnnaBridge 163:e59c8e839560 351
AnnaBridge 163:e59c8e839560 352 /**
AnnaBridge 163:e59c8e839560 353 * @brief Enable the RTC WakeUpTimer interrupt.
AnnaBridge 168:b9e159c1930a 354 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 355 * @param __INTERRUPT__ specifies the RTC WakeUpTimer interrupt sources to be enabled.
AnnaBridge 163:e59c8e839560 356 * This parameter can be:
AnnaBridge 163:e59c8e839560 357 * @arg RTC_IT_WUT: WakeUpTimer interrupt
AnnaBridge 163:e59c8e839560 358 * @retval None
AnnaBridge 163:e59c8e839560 359 */
AnnaBridge 163:e59c8e839560 360 #define __HAL_RTC_WAKEUPTIMER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
AnnaBridge 163:e59c8e839560 361
AnnaBridge 163:e59c8e839560 362 /**
AnnaBridge 163:e59c8e839560 363 * @brief Disable the RTC WakeUpTimer interrupt.
AnnaBridge 168:b9e159c1930a 364 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 365 * @param __INTERRUPT__ specifies the RTC WakeUpTimer interrupt sources to be disabled.
AnnaBridge 163:e59c8e839560 366 * This parameter can be:
AnnaBridge 163:e59c8e839560 367 * @arg RTC_IT_WUT: WakeUpTimer interrupt
AnnaBridge 163:e59c8e839560 368 * @retval None
AnnaBridge 163:e59c8e839560 369 */
AnnaBridge 163:e59c8e839560 370 #define __HAL_RTC_WAKEUPTIMER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
AnnaBridge 163:e59c8e839560 371
AnnaBridge 163:e59c8e839560 372 /**
AnnaBridge 163:e59c8e839560 373 * @brief Check whether the specified RTC WakeUpTimer interrupt has occurred or not.
AnnaBridge 168:b9e159c1930a 374 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 375 * @param __INTERRUPT__ specifies the RTC WakeUpTimer interrupt to check.
AnnaBridge 163:e59c8e839560 376 * This parameter can be:
AnnaBridge 163:e59c8e839560 377 * @arg RTC_IT_WUT: WakeUpTimer interrupt
AnnaBridge 163:e59c8e839560 378 * @retval None
AnnaBridge 163:e59c8e839560 379 */
AnnaBridge 163:e59c8e839560 380 #define __HAL_RTC_WAKEUPTIMER_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 4U)) != RESET) ? SET : RESET)
AnnaBridge 163:e59c8e839560 381
AnnaBridge 163:e59c8e839560 382 /**
AnnaBridge 163:e59c8e839560 383 * @brief Check whether the specified RTC Wake Up timer interrupt has been enabled or not.
AnnaBridge 168:b9e159c1930a 384 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 385 * @param __INTERRUPT__ specifies the RTC Wake Up timer interrupt sources to check.
AnnaBridge 163:e59c8e839560 386 * This parameter can be:
AnnaBridge 163:e59c8e839560 387 * @arg RTC_IT_WUT: WakeUpTimer interrupt
AnnaBridge 163:e59c8e839560 388 * @retval None
AnnaBridge 163:e59c8e839560 389 */
AnnaBridge 163:e59c8e839560 390 #define __HAL_RTC_WAKEUPTIMER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
AnnaBridge 163:e59c8e839560 391
AnnaBridge 163:e59c8e839560 392 /**
AnnaBridge 163:e59c8e839560 393 * @brief Get the selected RTC WakeUpTimer's flag status.
AnnaBridge 168:b9e159c1930a 394 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 395 * @param __FLAG__ specifies the RTC WakeUpTimer Flag is pending or not.
AnnaBridge 163:e59c8e839560 396 * This parameter can be:
AnnaBridge 163:e59c8e839560 397 * @arg RTC_FLAG_WUTF
AnnaBridge 163:e59c8e839560 398 * @arg RTC_FLAG_WUTWF
AnnaBridge 163:e59c8e839560 399 * @retval None
AnnaBridge 163:e59c8e839560 400 */
AnnaBridge 163:e59c8e839560 401 #define __HAL_RTC_WAKEUPTIMER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET) ? SET : RESET)
AnnaBridge 163:e59c8e839560 402
AnnaBridge 163:e59c8e839560 403 /**
AnnaBridge 163:e59c8e839560 404 * @brief Clear the RTC Wake Up timer's pending flags.
AnnaBridge 168:b9e159c1930a 405 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 406 * @param __FLAG__ specifies the RTC WakeUpTimer Flag to clear.
AnnaBridge 163:e59c8e839560 407 * This parameter can be:
AnnaBridge 163:e59c8e839560 408 * @arg RTC_FLAG_WUTF
AnnaBridge 163:e59c8e839560 409 * @retval None
AnnaBridge 163:e59c8e839560 410 */
AnnaBridge 163:e59c8e839560 411 #define __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
AnnaBridge 163:e59c8e839560 412
AnnaBridge 163:e59c8e839560 413 /* WAKE-UP TIMER EXTI */
AnnaBridge 163:e59c8e839560 414 /* ------------------ */
AnnaBridge 163:e59c8e839560 415 /**
AnnaBridge 163:e59c8e839560 416 * @brief Enable interrupt on the RTC WakeUp Timer associated Exti line.
AnnaBridge 163:e59c8e839560 417 * @retval None
AnnaBridge 163:e59c8e839560 418 */
AnnaBridge 163:e59c8e839560 419 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT() (EXTI->IMR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 163:e59c8e839560 420
AnnaBridge 163:e59c8e839560 421 /**
AnnaBridge 163:e59c8e839560 422 * @brief Disable interrupt on the RTC WakeUp Timer associated Exti line.
AnnaBridge 163:e59c8e839560 423 * @retval None
AnnaBridge 163:e59c8e839560 424 */
AnnaBridge 163:e59c8e839560 425 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT() (EXTI->IMR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
AnnaBridge 163:e59c8e839560 426
AnnaBridge 163:e59c8e839560 427 /**
AnnaBridge 163:e59c8e839560 428 * @brief Enable event on the RTC WakeUp Timer associated Exti line.
AnnaBridge 163:e59c8e839560 429 * @retval None.
AnnaBridge 163:e59c8e839560 430 */
AnnaBridge 163:e59c8e839560 431 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_EVENT() (EXTI->EMR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 163:e59c8e839560 432
AnnaBridge 163:e59c8e839560 433 /**
AnnaBridge 163:e59c8e839560 434 * @brief Disable event on the RTC WakeUp Timer associated Exti line.
AnnaBridge 163:e59c8e839560 435 * @retval None.
AnnaBridge 163:e59c8e839560 436 */
AnnaBridge 163:e59c8e839560 437 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_EVENT() (EXTI->EMR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
AnnaBridge 163:e59c8e839560 438
AnnaBridge 163:e59c8e839560 439 /**
AnnaBridge 163:e59c8e839560 440 * @brief Enable falling edge trigger on the RTC WakeUp Timer associated Exti line.
AnnaBridge 163:e59c8e839560 441 * @retval None.
AnnaBridge 163:e59c8e839560 442 */
AnnaBridge 163:e59c8e839560 443 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 163:e59c8e839560 444
AnnaBridge 163:e59c8e839560 445 /**
AnnaBridge 163:e59c8e839560 446 * @brief Disable falling edge trigger on the RTC WakeUp Timer associated Exti line.
AnnaBridge 163:e59c8e839560 447 * @retval None.
AnnaBridge 163:e59c8e839560 448 */
AnnaBridge 163:e59c8e839560 449 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
AnnaBridge 163:e59c8e839560 450
AnnaBridge 163:e59c8e839560 451 /**
AnnaBridge 163:e59c8e839560 452 * @brief Enable rising edge trigger on the RTC WakeUp Timer associated Exti line.
AnnaBridge 163:e59c8e839560 453 * @retval None.
AnnaBridge 163:e59c8e839560 454 */
AnnaBridge 163:e59c8e839560 455 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 163:e59c8e839560 456
AnnaBridge 163:e59c8e839560 457 /**
AnnaBridge 163:e59c8e839560 458 * @brief Disable rising edge trigger on the RTC WakeUp Timer associated Exti line.
AnnaBridge 163:e59c8e839560 459 * @retval None.
AnnaBridge 163:e59c8e839560 460 */
AnnaBridge 163:e59c8e839560 461 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT))
AnnaBridge 163:e59c8e839560 462
AnnaBridge 163:e59c8e839560 463 /**
AnnaBridge 163:e59c8e839560 464 * @brief Enable rising & falling edge trigger on the RTC WakeUp Timer associated Exti line.
AnnaBridge 163:e59c8e839560 465 * @retval None.
AnnaBridge 163:e59c8e839560 466 */
AnnaBridge 163:e59c8e839560 467 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_EDGE() __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE();__HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE();
AnnaBridge 163:e59c8e839560 468
AnnaBridge 163:e59c8e839560 469 /**
AnnaBridge 163:e59c8e839560 470 * @brief Disable rising & falling edge trigger on the RTC WakeUp Timer associated Exti line.
AnnaBridge 163:e59c8e839560 471 * This parameter can be:
AnnaBridge 163:e59c8e839560 472 * @retval None.
AnnaBridge 163:e59c8e839560 473 */
AnnaBridge 163:e59c8e839560 474 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_EDGE() __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE();__HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE();
AnnaBridge 163:e59c8e839560 475
AnnaBridge 163:e59c8e839560 476 /**
AnnaBridge 163:e59c8e839560 477 * @brief Check whether the RTC WakeUp Timer associated Exti line interrupt flag is set or not.
AnnaBridge 163:e59c8e839560 478 * @retval Line Status.
AnnaBridge 163:e59c8e839560 479 */
AnnaBridge 163:e59c8e839560 480 #define __HAL_RTC_WAKEUPTIMER_EXTI_GET_FLAG() (EXTI->PR & RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 163:e59c8e839560 481
AnnaBridge 163:e59c8e839560 482 /**
AnnaBridge 163:e59c8e839560 483 * @brief Clear the RTC WakeUp Timer associated Exti line flag.
AnnaBridge 163:e59c8e839560 484 * @retval None.
AnnaBridge 163:e59c8e839560 485 */
AnnaBridge 163:e59c8e839560 486 #define __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG() (EXTI->PR = RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 163:e59c8e839560 487
AnnaBridge 163:e59c8e839560 488 /**
AnnaBridge 163:e59c8e839560 489 * @brief Generate a Software interrupt on the RTC WakeUp Timer associated Exti line.
AnnaBridge 163:e59c8e839560 490 * @retval None.
AnnaBridge 163:e59c8e839560 491 */
AnnaBridge 163:e59c8e839560 492 #define __HAL_RTC_WAKEUPTIMER_EXTI_GENERATE_SWIT() (EXTI->SWIER |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT)
AnnaBridge 163:e59c8e839560 493 /**
AnnaBridge 163:e59c8e839560 494 * @}
AnnaBridge 163:e59c8e839560 495 */
AnnaBridge 163:e59c8e839560 496
AnnaBridge 163:e59c8e839560 497 /* ---------------------------------TIMESTAMP---------------------------------*/
AnnaBridge 163:e59c8e839560 498 /** @defgroup RTCEx_Timestamp RTC Extended Timestamp
AnnaBridge 163:e59c8e839560 499 * @{
AnnaBridge 163:e59c8e839560 500 */
AnnaBridge 163:e59c8e839560 501 /**
AnnaBridge 163:e59c8e839560 502 * @brief Enable the RTC TimeStamp peripheral.
AnnaBridge 168:b9e159c1930a 503 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 504 * @retval None
AnnaBridge 163:e59c8e839560 505 */
AnnaBridge 163:e59c8e839560 506 #define __HAL_RTC_TIMESTAMP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_TSE))
AnnaBridge 163:e59c8e839560 507
AnnaBridge 163:e59c8e839560 508 /**
AnnaBridge 163:e59c8e839560 509 * @brief Disable the RTC TimeStamp peripheral.
AnnaBridge 168:b9e159c1930a 510 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 511 * @retval None
AnnaBridge 163:e59c8e839560 512 */
AnnaBridge 163:e59c8e839560 513 #define __HAL_RTC_TIMESTAMP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_TSE))
AnnaBridge 163:e59c8e839560 514
AnnaBridge 163:e59c8e839560 515 /**
AnnaBridge 163:e59c8e839560 516 * @brief Enable the RTC TimeStamp interrupt.
AnnaBridge 168:b9e159c1930a 517 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 518 * @param __INTERRUPT__ specifies the RTC TimeStamp interrupt source to be enabled.
AnnaBridge 163:e59c8e839560 519 * This parameter can be:
AnnaBridge 163:e59c8e839560 520 * @arg RTC_IT_TS: TimeStamp interrupt
AnnaBridge 163:e59c8e839560 521 * @retval None
AnnaBridge 163:e59c8e839560 522 */
AnnaBridge 163:e59c8e839560 523 #define __HAL_RTC_TIMESTAMP_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
AnnaBridge 163:e59c8e839560 524
AnnaBridge 163:e59c8e839560 525 /**
AnnaBridge 163:e59c8e839560 526 * @brief Disable the RTC TimeStamp interrupt.
AnnaBridge 168:b9e159c1930a 527 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 528 * @param __INTERRUPT__ specifies the RTC TimeStamp interrupt source to be disabled.
AnnaBridge 163:e59c8e839560 529 * This parameter can be:
AnnaBridge 163:e59c8e839560 530 * @arg RTC_IT_TS: TimeStamp interrupt
AnnaBridge 163:e59c8e839560 531 * @retval None
AnnaBridge 163:e59c8e839560 532 */
AnnaBridge 163:e59c8e839560 533 #define __HAL_RTC_TIMESTAMP_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
AnnaBridge 163:e59c8e839560 534
AnnaBridge 163:e59c8e839560 535 /**
AnnaBridge 163:e59c8e839560 536 * @brief Check whether the specified RTC TimeStamp interrupt has occurred or not.
AnnaBridge 168:b9e159c1930a 537 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 538 * @param __INTERRUPT__ specifies the RTC TimeStamp interrupt to check.
AnnaBridge 163:e59c8e839560 539 * This parameter can be:
AnnaBridge 163:e59c8e839560 540 * @arg RTC_IT_TS: TimeStamp interrupt
AnnaBridge 163:e59c8e839560 541 * @retval None
AnnaBridge 163:e59c8e839560 542 */
AnnaBridge 163:e59c8e839560 543 #define __HAL_RTC_TIMESTAMP_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 4U)) != RESET)? SET : RESET)
AnnaBridge 163:e59c8e839560 544
AnnaBridge 163:e59c8e839560 545 /**
AnnaBridge 163:e59c8e839560 546 * @brief Check whether the specified RTC Time Stamp interrupt has been enabled or not.
AnnaBridge 168:b9e159c1930a 547 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 548 * @param __INTERRUPT__ specifies the RTC Time Stamp interrupt source to check.
AnnaBridge 163:e59c8e839560 549 * This parameter can be:
AnnaBridge 163:e59c8e839560 550 * @arg RTC_IT_TS: TimeStamp interrupt
AnnaBridge 163:e59c8e839560 551 * @retval None
AnnaBridge 163:e59c8e839560 552 */
AnnaBridge 163:e59c8e839560 553 #define __HAL_RTC_TIMESTAMP_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
AnnaBridge 163:e59c8e839560 554
AnnaBridge 163:e59c8e839560 555 /**
AnnaBridge 163:e59c8e839560 556 * @brief Get the selected RTC TimeStamp's flag status.
AnnaBridge 168:b9e159c1930a 557 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 558 * @param __FLAG__ specifies the RTC TimeStamp Flag is pending or not.
AnnaBridge 163:e59c8e839560 559 * This parameter can be:
AnnaBridge 163:e59c8e839560 560 * @arg RTC_FLAG_TSF
AnnaBridge 163:e59c8e839560 561 * @arg RTC_FLAG_TSOVF
AnnaBridge 163:e59c8e839560 562 * @retval None
AnnaBridge 163:e59c8e839560 563 */
AnnaBridge 163:e59c8e839560 564 #define __HAL_RTC_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
AnnaBridge 163:e59c8e839560 565
AnnaBridge 163:e59c8e839560 566 /**
AnnaBridge 163:e59c8e839560 567 * @brief Clear the RTC Time Stamp's pending flags.
AnnaBridge 168:b9e159c1930a 568 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 569 * @param __FLAG__ specifies the RTC Alarm Flag to clear.
AnnaBridge 163:e59c8e839560 570 * This parameter can be:
AnnaBridge 163:e59c8e839560 571 * @arg RTC_FLAG_TSF
AnnaBridge 163:e59c8e839560 572 * @retval None
AnnaBridge 163:e59c8e839560 573 */
AnnaBridge 163:e59c8e839560 574 #define __HAL_RTC_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
AnnaBridge 163:e59c8e839560 575
AnnaBridge 163:e59c8e839560 576 /**
AnnaBridge 163:e59c8e839560 577 * @}
AnnaBridge 163:e59c8e839560 578 */
AnnaBridge 163:e59c8e839560 579
AnnaBridge 163:e59c8e839560 580 /* ---------------------------------TAMPER------------------------------------*/
AnnaBridge 163:e59c8e839560 581 /** @defgroup RTCEx_Tamper RTC Extended Tamper
AnnaBridge 163:e59c8e839560 582 * @{
AnnaBridge 163:e59c8e839560 583 */
AnnaBridge 163:e59c8e839560 584
AnnaBridge 163:e59c8e839560 585 /**
AnnaBridge 163:e59c8e839560 586 * @brief Enable the RTC Tamper1 input detection.
AnnaBridge 168:b9e159c1930a 587 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 588 * @retval None
AnnaBridge 163:e59c8e839560 589 */
AnnaBridge 163:e59c8e839560 590 #define __HAL_RTC_TAMPER1_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAFCR |= (RTC_TAFCR_TAMP1E))
AnnaBridge 163:e59c8e839560 591
AnnaBridge 163:e59c8e839560 592 /**
AnnaBridge 163:e59c8e839560 593 * @brief Disable the RTC Tamper1 input detection.
AnnaBridge 168:b9e159c1930a 594 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 595 * @retval None
AnnaBridge 163:e59c8e839560 596 */
AnnaBridge 163:e59c8e839560 597 #define __HAL_RTC_TAMPER1_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAFCR &= ~(RTC_TAFCR_TAMP1E))
AnnaBridge 163:e59c8e839560 598
AnnaBridge 163:e59c8e839560 599 /**
AnnaBridge 163:e59c8e839560 600 * @brief Enable the RTC Tamper2 input detection.
AnnaBridge 168:b9e159c1930a 601 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 602 * @retval None
AnnaBridge 163:e59c8e839560 603 */
AnnaBridge 163:e59c8e839560 604 #define __HAL_RTC_TAMPER2_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAFCR |= (RTC_TAFCR_TAMP2E))
AnnaBridge 163:e59c8e839560 605
AnnaBridge 163:e59c8e839560 606 /**
AnnaBridge 163:e59c8e839560 607 * @brief Disable the RTC Tamper2 input detection.
AnnaBridge 168:b9e159c1930a 608 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 609 * @retval None
AnnaBridge 163:e59c8e839560 610 */
AnnaBridge 163:e59c8e839560 611 #define __HAL_RTC_TAMPER2_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAFCR &= ~(RTC_TAFCR_TAMP2E))
AnnaBridge 163:e59c8e839560 612
AnnaBridge 163:e59c8e839560 613 #if defined(RTC_TAMPER3_SUPPORT)
AnnaBridge 163:e59c8e839560 614 /**
AnnaBridge 163:e59c8e839560 615 * @brief Enable the RTC Tamper3 input detection.
AnnaBridge 168:b9e159c1930a 616 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 617 * @retval None
AnnaBridge 163:e59c8e839560 618 */
AnnaBridge 163:e59c8e839560 619 #define __HAL_RTC_TAMPER3_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAFCR |= (RTC_TAFCR_TAMP3E))
AnnaBridge 163:e59c8e839560 620
AnnaBridge 163:e59c8e839560 621 /**
AnnaBridge 163:e59c8e839560 622 * @brief Disable the RTC Tamper3 input detection.
AnnaBridge 168:b9e159c1930a 623 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 624 * @retval None
AnnaBridge 163:e59c8e839560 625 */
AnnaBridge 163:e59c8e839560 626 #define __HAL_RTC_TAMPER3_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAFCR &= ~(RTC_TAFCR_TAMP3E))
AnnaBridge 163:e59c8e839560 627 #endif /* RTC_TAMPER3_SUPPORT */
AnnaBridge 163:e59c8e839560 628
AnnaBridge 163:e59c8e839560 629 /**
AnnaBridge 163:e59c8e839560 630 * @brief Enable the RTC Tamper interrupt.
AnnaBridge 168:b9e159c1930a 631 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 632 * @param __INTERRUPT__ specifies the RTC Tamper interrupt sources to be enabled.
AnnaBridge 163:e59c8e839560 633 * This parameter can be any combination of the following values:
AnnaBridge 163:e59c8e839560 634 * @arg RTC_IT_TAMP: Tamper interrupt
AnnaBridge 163:e59c8e839560 635 * @retval None
AnnaBridge 163:e59c8e839560 636 */
AnnaBridge 163:e59c8e839560 637 #define __HAL_RTC_TAMPER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAFCR |= (__INTERRUPT__))
AnnaBridge 163:e59c8e839560 638
AnnaBridge 163:e59c8e839560 639 /**
AnnaBridge 163:e59c8e839560 640 * @brief Disable the RTC Tamper interrupt.
AnnaBridge 168:b9e159c1930a 641 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 642 * @param __INTERRUPT__ specifies the RTC Tamper interrupt sources to be disabled.
AnnaBridge 163:e59c8e839560 643 * This parameter can be any combination of the following values:
AnnaBridge 163:e59c8e839560 644 * @arg RTC_IT_TAMP: Tamper interrupt
AnnaBridge 163:e59c8e839560 645 * @retval None
AnnaBridge 163:e59c8e839560 646 */
AnnaBridge 163:e59c8e839560 647 #define __HAL_RTC_TAMPER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAFCR &= ~(__INTERRUPT__))
AnnaBridge 163:e59c8e839560 648
AnnaBridge 163:e59c8e839560 649 /**
AnnaBridge 163:e59c8e839560 650 * @brief Check whether the specified RTC Tamper interrupt has occurred or not.
AnnaBridge 168:b9e159c1930a 651 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 652 * @param __INTERRUPT__ specifies the RTC Tamper interrupt to check.
AnnaBridge 163:e59c8e839560 653 * This parameter can be:
AnnaBridge 163:e59c8e839560 654 * @arg RTC_IT_TAMP1: Tamper1 interrupt
AnnaBridge 163:e59c8e839560 655 * @arg RTC_IT_TAMP2: Tamper2 interrupt
AnnaBridge 163:e59c8e839560 656 * @arg RTC_IT_TAMP3: Tamper3 interrupt (*)
AnnaBridge 163:e59c8e839560 657 * @note (*) RTC_IT_TAMP3 not present on all the devices
AnnaBridge 163:e59c8e839560 658 * @retval None
AnnaBridge 163:e59c8e839560 659 */
AnnaBridge 163:e59c8e839560 660 #define __HAL_RTC_TAMPER_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 4U)) != RESET)? SET : RESET)
AnnaBridge 163:e59c8e839560 661
AnnaBridge 163:e59c8e839560 662 /**
AnnaBridge 163:e59c8e839560 663 * @brief Check whether the specified RTC Tamper interrupt has been enabled or not.
AnnaBridge 168:b9e159c1930a 664 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 665 * @param __INTERRUPT__ specifies the RTC Tamper interrupt source to check.
AnnaBridge 163:e59c8e839560 666 * This parameter can be:
AnnaBridge 163:e59c8e839560 667 * @arg RTC_IT_TAMP: Tamper interrupt
AnnaBridge 163:e59c8e839560 668 * @retval None
AnnaBridge 163:e59c8e839560 669 */
AnnaBridge 163:e59c8e839560 670 #define __HAL_RTC_TAMPER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->TAFCR) & (__INTERRUPT__)) != RESET) ? SET : RESET)
AnnaBridge 163:e59c8e839560 671
AnnaBridge 163:e59c8e839560 672 /**
AnnaBridge 163:e59c8e839560 673 * @brief Get the selected RTC Tamper's flag status.
AnnaBridge 168:b9e159c1930a 674 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 675 * @param __FLAG__ specifies the RTC Tamper Flag is pending or not.
AnnaBridge 163:e59c8e839560 676 * This parameter can be:
AnnaBridge 163:e59c8e839560 677 * @arg RTC_FLAG_TAMP1F
AnnaBridge 163:e59c8e839560 678 * @arg RTC_FLAG_TAMP2F
AnnaBridge 163:e59c8e839560 679 * @arg RTC_FLAG_TAMP3F (*)
AnnaBridge 163:e59c8e839560 680 * @note (*) RTC_FLAG_TAMP3F not present on all the devices
AnnaBridge 163:e59c8e839560 681 * @retval None
AnnaBridge 163:e59c8e839560 682 */
AnnaBridge 163:e59c8e839560 683 #define __HAL_RTC_TAMPER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
AnnaBridge 163:e59c8e839560 684
AnnaBridge 163:e59c8e839560 685
AnnaBridge 163:e59c8e839560 686 /**
AnnaBridge 163:e59c8e839560 687 * @brief Clear the RTC Tamper's pending flags.
AnnaBridge 168:b9e159c1930a 688 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 689 * @param __FLAG__ specifies the RTC Tamper Flag to clear.
AnnaBridge 163:e59c8e839560 690 * This parameter can be:
AnnaBridge 163:e59c8e839560 691 * @arg RTC_FLAG_TAMP1F
AnnaBridge 163:e59c8e839560 692 * @arg RTC_FLAG_TAMP2F
AnnaBridge 163:e59c8e839560 693 * @arg RTC_FLAG_TAMP3F (*)
AnnaBridge 163:e59c8e839560 694 * @note (*) RTC_FLAG_TAMP3F not present on all the devices
AnnaBridge 163:e59c8e839560 695 * @retval None
AnnaBridge 163:e59c8e839560 696 */
AnnaBridge 163:e59c8e839560 697 #define __HAL_RTC_TAMPER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
AnnaBridge 163:e59c8e839560 698
AnnaBridge 163:e59c8e839560 699
AnnaBridge 163:e59c8e839560 700 /**
AnnaBridge 163:e59c8e839560 701 * @}
AnnaBridge 163:e59c8e839560 702 */
AnnaBridge 163:e59c8e839560 703
AnnaBridge 163:e59c8e839560 704 /* --------------------------TAMPER/TIMESTAMP---------------------------------*/
AnnaBridge 163:e59c8e839560 705 /** @defgroup RTCEx_Tamper_Timestamp EXTI RTC Extended Tamper Timestamp EXTI
AnnaBridge 163:e59c8e839560 706 * @{
AnnaBridge 163:e59c8e839560 707 */
AnnaBridge 163:e59c8e839560 708
AnnaBridge 163:e59c8e839560 709 /* TAMPER TIMESTAMP EXTI */
AnnaBridge 163:e59c8e839560 710 /* --------------------- */
AnnaBridge 163:e59c8e839560 711 /**
AnnaBridge 163:e59c8e839560 712 * @brief Enable interrupt on the RTC Tamper and Timestamp associated Exti line.
AnnaBridge 163:e59c8e839560 713 * @retval None
AnnaBridge 163:e59c8e839560 714 */
AnnaBridge 163:e59c8e839560 715 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT() (EXTI->IMR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
AnnaBridge 163:e59c8e839560 716
AnnaBridge 163:e59c8e839560 717 /**
AnnaBridge 163:e59c8e839560 718 * @brief Disable interrupt on the RTC Tamper and Timestamp associated Exti line.
AnnaBridge 163:e59c8e839560 719 * @retval None
AnnaBridge 163:e59c8e839560 720 */
AnnaBridge 163:e59c8e839560 721 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_IT() (EXTI->IMR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
AnnaBridge 163:e59c8e839560 722
AnnaBridge 163:e59c8e839560 723 /**
AnnaBridge 163:e59c8e839560 724 * @brief Enable event on the RTC Tamper and Timestamp associated Exti line.
AnnaBridge 163:e59c8e839560 725 * @retval None.
AnnaBridge 163:e59c8e839560 726 */
AnnaBridge 163:e59c8e839560 727 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_EVENT() (EXTI->EMR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
AnnaBridge 163:e59c8e839560 728
AnnaBridge 163:e59c8e839560 729 /**
AnnaBridge 163:e59c8e839560 730 * @brief Disable event on the RTC Tamper and Timestamp associated Exti line.
AnnaBridge 163:e59c8e839560 731 * @retval None.
AnnaBridge 163:e59c8e839560 732 */
AnnaBridge 163:e59c8e839560 733 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_EVENT() (EXTI->EMR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
AnnaBridge 163:e59c8e839560 734
AnnaBridge 163:e59c8e839560 735 /**
AnnaBridge 163:e59c8e839560 736 * @brief Enable falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
AnnaBridge 163:e59c8e839560 737 * @retval None.
AnnaBridge 163:e59c8e839560 738 */
AnnaBridge 163:e59c8e839560 739 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
AnnaBridge 163:e59c8e839560 740
AnnaBridge 163:e59c8e839560 741 /**
AnnaBridge 163:e59c8e839560 742 * @brief Disable falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
AnnaBridge 163:e59c8e839560 743 * @retval None.
AnnaBridge 163:e59c8e839560 744 */
AnnaBridge 163:e59c8e839560 745 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
AnnaBridge 163:e59c8e839560 746
AnnaBridge 163:e59c8e839560 747 /**
AnnaBridge 163:e59c8e839560 748 * @brief Enable rising edge trigger on the RTC Tamper and Timestamp associated Exti line.
AnnaBridge 163:e59c8e839560 749 * @retval None.
AnnaBridge 163:e59c8e839560 750 */
AnnaBridge 163:e59c8e839560 751 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
AnnaBridge 163:e59c8e839560 752
AnnaBridge 163:e59c8e839560 753 /**
AnnaBridge 163:e59c8e839560 754 * @brief Disable rising edge trigger on the RTC Tamper and Timestamp associated Exti line.
AnnaBridge 163:e59c8e839560 755 * @retval None.
AnnaBridge 163:e59c8e839560 756 */
AnnaBridge 163:e59c8e839560 757 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT))
AnnaBridge 163:e59c8e839560 758
AnnaBridge 163:e59c8e839560 759 /**
AnnaBridge 163:e59c8e839560 760 * @brief Enable rising & falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
AnnaBridge 163:e59c8e839560 761 * @retval None.
AnnaBridge 163:e59c8e839560 762 */
AnnaBridge 163:e59c8e839560 763 #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();
AnnaBridge 163:e59c8e839560 764
AnnaBridge 163:e59c8e839560 765 /**
AnnaBridge 163:e59c8e839560 766 * @brief Disable rising & falling edge trigger on the RTC Tamper and Timestamp associated Exti line.
AnnaBridge 163:e59c8e839560 767 * This parameter can be:
AnnaBridge 163:e59c8e839560 768 * @retval None.
AnnaBridge 163:e59c8e839560 769 */
AnnaBridge 163:e59c8e839560 770 #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();
AnnaBridge 163:e59c8e839560 771
AnnaBridge 163:e59c8e839560 772 /**
AnnaBridge 163:e59c8e839560 773 * @brief Check whether the RTC Tamper and Timestamp associated Exti line interrupt flag is set or not.
AnnaBridge 163:e59c8e839560 774 * @retval Line Status.
AnnaBridge 163:e59c8e839560 775 */
AnnaBridge 163:e59c8e839560 776 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG() (EXTI->PR & RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
AnnaBridge 163:e59c8e839560 777
AnnaBridge 163:e59c8e839560 778 /**
AnnaBridge 163:e59c8e839560 779 * @brief Clear the RTC Tamper and Timestamp associated Exti line flag.
AnnaBridge 163:e59c8e839560 780 * @retval None.
AnnaBridge 163:e59c8e839560 781 */
AnnaBridge 163:e59c8e839560 782 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG() (EXTI->PR = RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
AnnaBridge 163:e59c8e839560 783
AnnaBridge 163:e59c8e839560 784 /**
AnnaBridge 163:e59c8e839560 785 * @brief Generate a Software interrupt on the RTC Tamper and Timestamp associated Exti line
AnnaBridge 163:e59c8e839560 786 * @retval None.
AnnaBridge 163:e59c8e839560 787 */
AnnaBridge 163:e59c8e839560 788 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GENERATE_SWIT() (EXTI->SWIER |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)
AnnaBridge 163:e59c8e839560 789 /**
AnnaBridge 163:e59c8e839560 790 * @}
AnnaBridge 163:e59c8e839560 791 */
AnnaBridge 163:e59c8e839560 792
AnnaBridge 163:e59c8e839560 793 /* ------------------------------Calibration----------------------------------*/
AnnaBridge 163:e59c8e839560 794 /** @defgroup RTCEx_Calibration RTC Extended Calibration
AnnaBridge 163:e59c8e839560 795 * @{
AnnaBridge 163:e59c8e839560 796 */
AnnaBridge 163:e59c8e839560 797
AnnaBridge 163:e59c8e839560 798 /**
AnnaBridge 163:e59c8e839560 799 * @brief Enable the RTC calibration output.
AnnaBridge 168:b9e159c1930a 800 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 801 * @retval None
AnnaBridge 163:e59c8e839560 802 */
AnnaBridge 163:e59c8e839560 803 #define __HAL_RTC_CALIBRATION_OUTPUT_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_COE))
AnnaBridge 163:e59c8e839560 804
AnnaBridge 163:e59c8e839560 805 /**
AnnaBridge 163:e59c8e839560 806 * @brief Disable the calibration output.
AnnaBridge 168:b9e159c1930a 807 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 808 * @retval None
AnnaBridge 163:e59c8e839560 809 */
AnnaBridge 163:e59c8e839560 810 #define __HAL_RTC_CALIBRATION_OUTPUT_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_COE))
AnnaBridge 163:e59c8e839560 811
AnnaBridge 163:e59c8e839560 812 /**
AnnaBridge 163:e59c8e839560 813 * @brief Enable the clock reference detection.
AnnaBridge 168:b9e159c1930a 814 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 815 * @retval None
AnnaBridge 163:e59c8e839560 816 */
AnnaBridge 163:e59c8e839560 817 #define __HAL_RTC_CLOCKREF_DETECTION_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_REFCKON))
AnnaBridge 163:e59c8e839560 818
AnnaBridge 163:e59c8e839560 819 /**
AnnaBridge 163:e59c8e839560 820 * @brief Disable the clock reference detection.
AnnaBridge 168:b9e159c1930a 821 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 163:e59c8e839560 822 * @retval None
AnnaBridge 163:e59c8e839560 823 */
AnnaBridge 163:e59c8e839560 824 #define __HAL_RTC_CLOCKREF_DETECTION_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_REFCKON))
AnnaBridge 163:e59c8e839560 825
AnnaBridge 163:e59c8e839560 826 /**
AnnaBridge 163:e59c8e839560 827 * @brief Get the selected RTC shift operation's flag status.
AnnaBridge 168:b9e159c1930a 828 * @param __HANDLE__ specifies the RTC handle.
AnnaBridge 168:b9e159c1930a 829 * @param __FLAG__ specifies the RTC shift operation Flag is pending or not.
AnnaBridge 163:e59c8e839560 830 * This parameter can be:
AnnaBridge 163:e59c8e839560 831 * @arg RTC_FLAG_SHPF
AnnaBridge 163:e59c8e839560 832 * @retval None
AnnaBridge 163:e59c8e839560 833 */
AnnaBridge 163:e59c8e839560 834 #define __HAL_RTC_SHIFT_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
AnnaBridge 163:e59c8e839560 835 /**
AnnaBridge 163:e59c8e839560 836 * @}
AnnaBridge 163:e59c8e839560 837 */
AnnaBridge 163:e59c8e839560 838
AnnaBridge 163:e59c8e839560 839 /**
AnnaBridge 163:e59c8e839560 840 * @}
AnnaBridge 163:e59c8e839560 841 */
AnnaBridge 163:e59c8e839560 842
AnnaBridge 163:e59c8e839560 843 /* Exported functions --------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 844 /** @defgroup RTCEx_Exported_Functions RTCEx Exported Functions
AnnaBridge 163:e59c8e839560 845 * @{
AnnaBridge 163:e59c8e839560 846 */
AnnaBridge 163:e59c8e839560 847
AnnaBridge 163:e59c8e839560 848 /* RTC TimeStamp and Tamper functions *****************************************/
AnnaBridge 163:e59c8e839560 849 /** @defgroup RTCEx_Exported_Functions_Group1 Extended RTC TimeStamp and Tamper functions
AnnaBridge 163:e59c8e839560 850 * @{
AnnaBridge 163:e59c8e839560 851 */
AnnaBridge 163:e59c8e839560 852
AnnaBridge 163:e59c8e839560 853 HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin);
AnnaBridge 163:e59c8e839560 854 HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin);
AnnaBridge 163:e59c8e839560 855 HAL_StatusTypeDef HAL_RTCEx_DeactivateTimeStamp(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 856 HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format);
AnnaBridge 163:e59c8e839560 857
AnnaBridge 163:e59c8e839560 858 HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef* sTamper);
AnnaBridge 163:e59c8e839560 859 HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef* sTamper);
AnnaBridge 163:e59c8e839560 860 HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper);
AnnaBridge 163:e59c8e839560 861 void HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 862
AnnaBridge 163:e59c8e839560 863 void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 864 void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 865 void HAL_RTCEx_Tamper3EventCallback(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 866 void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 867 HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
AnnaBridge 163:e59c8e839560 868 HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
AnnaBridge 163:e59c8e839560 869 HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
AnnaBridge 163:e59c8e839560 870 HAL_StatusTypeDef HAL_RTCEx_PollForTamper3Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
AnnaBridge 163:e59c8e839560 871 /**
AnnaBridge 163:e59c8e839560 872 * @}
AnnaBridge 163:e59c8e839560 873 */
AnnaBridge 163:e59c8e839560 874
AnnaBridge 163:e59c8e839560 875 /* RTC Wake-up functions ******************************************************/
AnnaBridge 163:e59c8e839560 876 /** @defgroup RTCEx_Exported_Functions_Group2 Extended RTC Wake-up functions
AnnaBridge 163:e59c8e839560 877 * @{
AnnaBridge 163:e59c8e839560 878 */
AnnaBridge 163:e59c8e839560 879
AnnaBridge 163:e59c8e839560 880 HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
AnnaBridge 163:e59c8e839560 881 HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
AnnaBridge 163:e59c8e839560 882 uint32_t HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 883 uint32_t HAL_RTCEx_GetWakeUpTimer(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 884 void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 885 void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 886 HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
AnnaBridge 163:e59c8e839560 887 /**
AnnaBridge 163:e59c8e839560 888 * @}
AnnaBridge 163:e59c8e839560 889 */
AnnaBridge 163:e59c8e839560 890
AnnaBridge 163:e59c8e839560 891 /* Extended Control functions ************************************************/
AnnaBridge 163:e59c8e839560 892 /** @defgroup RTCEx_Exported_Functions_Group3 Extended Peripheral Control functions
AnnaBridge 163:e59c8e839560 893 * @{
AnnaBridge 163:e59c8e839560 894 */
AnnaBridge 163:e59c8e839560 895
AnnaBridge 163:e59c8e839560 896 void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data);
AnnaBridge 163:e59c8e839560 897 uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister);
AnnaBridge 163:e59c8e839560 898
AnnaBridge 163:e59c8e839560 899 HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmoothCalibMinusPulsesValue);
AnnaBridge 163:e59c8e839560 900 HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS);
AnnaBridge 163:e59c8e839560 901 HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput);
AnnaBridge 163:e59c8e839560 902 HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 903 HAL_StatusTypeDef HAL_RTCEx_SetRefClock(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 904 HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 905 HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 906 HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 907 /**
AnnaBridge 163:e59c8e839560 908 * @}
AnnaBridge 163:e59c8e839560 909 */
AnnaBridge 163:e59c8e839560 910
AnnaBridge 163:e59c8e839560 911 /* Extended RTC features functions *******************************************/
AnnaBridge 163:e59c8e839560 912 /** @defgroup RTCEx_Exported_Functions_Group4 Extended features functions
AnnaBridge 163:e59c8e839560 913 * @{
AnnaBridge 163:e59c8e839560 914 */
AnnaBridge 163:e59c8e839560 915 void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc);
AnnaBridge 163:e59c8e839560 916 HAL_StatusTypeDef HAL_RTCEx_PollForAlarmBEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
AnnaBridge 163:e59c8e839560 917
AnnaBridge 163:e59c8e839560 918 /**
AnnaBridge 163:e59c8e839560 919 * @}
AnnaBridge 163:e59c8e839560 920 */
AnnaBridge 163:e59c8e839560 921
AnnaBridge 163:e59c8e839560 922 /**
AnnaBridge 163:e59c8e839560 923 * @}
AnnaBridge 163:e59c8e839560 924 */
AnnaBridge 163:e59c8e839560 925
AnnaBridge 163:e59c8e839560 926 /* Private types -------------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 927 /* Private variables ---------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 928 /* Private constants ---------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 929 /* Private macros ------------------------------------------------------------*/
AnnaBridge 163:e59c8e839560 930 /** @defgroup RTCEx_Private_Macros RTCEx Private Macros
AnnaBridge 163:e59c8e839560 931 * @{
AnnaBridge 163:e59c8e839560 932 */
AnnaBridge 163:e59c8e839560 933
AnnaBridge 163:e59c8e839560 934 /** @defgroup RTCEx_IS_RTC_Definitions Private macros to check input parameters
AnnaBridge 163:e59c8e839560 935 * @{
AnnaBridge 163:e59c8e839560 936 */
AnnaBridge 163:e59c8e839560 937 #define IS_RTC_OUTPUT(OUTPUT) (((OUTPUT) == RTC_OUTPUT_DISABLE) || \
AnnaBridge 163:e59c8e839560 938 ((OUTPUT) == RTC_OUTPUT_ALARMA) || \
AnnaBridge 163:e59c8e839560 939 ((OUTPUT) == RTC_OUTPUT_ALARMB) || \
AnnaBridge 163:e59c8e839560 940 ((OUTPUT) == RTC_OUTPUT_WAKEUP))
AnnaBridge 163:e59c8e839560 941
AnnaBridge 163:e59c8e839560 942 #define IS_RTC_BKP(BKP) ((BKP) < (uint32_t) RTC_BKP_NUMBER)
AnnaBridge 163:e59c8e839560 943
AnnaBridge 163:e59c8e839560 944 #define IS_TIMESTAMP_EDGE(EDGE) (((EDGE) == RTC_TIMESTAMPEDGE_RISING) || \
AnnaBridge 163:e59c8e839560 945 ((EDGE) == RTC_TIMESTAMPEDGE_FALLING))
AnnaBridge 163:e59c8e839560 946
AnnaBridge 163:e59c8e839560 947 #define IS_RTC_TAMPER(TAMPER) ((((TAMPER) & 0xFFFFFFD6U) == 0x00U) && ((TAMPER) != (uint32_t)RESET))
AnnaBridge 163:e59c8e839560 948
AnnaBridge 163:e59c8e839560 949
AnnaBridge 163:e59c8e839560 950 #define IS_RTC_TIMESTAMP_PIN(PIN) (((PIN) == RTC_TIMESTAMPPIN_DEFAULT))
AnnaBridge 163:e59c8e839560 951
AnnaBridge 163:e59c8e839560 952
AnnaBridge 163:e59c8e839560 953 #define IS_RTC_TAMPER_TRIGGER(TRIGGER) (((TRIGGER) == RTC_TAMPERTRIGGER_RISINGEDGE) || \
AnnaBridge 163:e59c8e839560 954 ((TRIGGER) == RTC_TAMPERTRIGGER_FALLINGEDGE) || \
AnnaBridge 163:e59c8e839560 955 ((TRIGGER) == RTC_TAMPERTRIGGER_LOWLEVEL) || \
AnnaBridge 163:e59c8e839560 956 ((TRIGGER) == RTC_TAMPERTRIGGER_HIGHLEVEL))
AnnaBridge 163:e59c8e839560 957 #define IS_RTC_TAMPER_FILTER(FILTER) (((FILTER) == RTC_TAMPERFILTER_DISABLE) || \
AnnaBridge 163:e59c8e839560 958 ((FILTER) == RTC_TAMPERFILTER_2SAMPLE) || \
AnnaBridge 163:e59c8e839560 959 ((FILTER) == RTC_TAMPERFILTER_4SAMPLE) || \
AnnaBridge 163:e59c8e839560 960 ((FILTER) == RTC_TAMPERFILTER_8SAMPLE))
AnnaBridge 163:e59c8e839560 961 #define IS_RTC_TAMPER_SAMPLING_FREQ(FREQ) (((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768)|| \
AnnaBridge 163:e59c8e839560 962 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384)|| \
AnnaBridge 163:e59c8e839560 963 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192) || \
AnnaBridge 163:e59c8e839560 964 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096) || \
AnnaBridge 163:e59c8e839560 965 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048) || \
AnnaBridge 163:e59c8e839560 966 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024) || \
AnnaBridge 163:e59c8e839560 967 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512) || \
AnnaBridge 163:e59c8e839560 968 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256))
AnnaBridge 163:e59c8e839560 969 #define IS_RTC_TAMPER_PRECHARGE_DURATION(DURATION) (((DURATION) == RTC_TAMPERPRECHARGEDURATION_1RTCCLK) || \
AnnaBridge 163:e59c8e839560 970 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_2RTCCLK) || \
AnnaBridge 163:e59c8e839560 971 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_4RTCCLK) || \
AnnaBridge 163:e59c8e839560 972 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_8RTCCLK))
AnnaBridge 163:e59c8e839560 973 #define IS_RTC_TAMPER_TIMESTAMPONTAMPER_DETECTION(DETECTION) (((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_ENABLE) || \
AnnaBridge 163:e59c8e839560 974 ((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_DISABLE))
AnnaBridge 163:e59c8e839560 975 #define IS_RTC_TAMPER_PULLUP_STATE(STATE) (((STATE) == RTC_TAMPER_PULLUP_ENABLE) || \
AnnaBridge 163:e59c8e839560 976 ((STATE) == RTC_TAMPER_PULLUP_DISABLE))
AnnaBridge 163:e59c8e839560 977 #define IS_RTC_WAKEUP_CLOCK(CLOCK) (((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV16) || \
AnnaBridge 163:e59c8e839560 978 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV8) || \
AnnaBridge 163:e59c8e839560 979 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV4) || \
AnnaBridge 163:e59c8e839560 980 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV2) || \
AnnaBridge 163:e59c8e839560 981 ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_16BITS) || \
AnnaBridge 163:e59c8e839560 982 ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_17BITS))
AnnaBridge 163:e59c8e839560 983
AnnaBridge 163:e59c8e839560 984 #define IS_RTC_WAKEUP_COUNTER(COUNTER) ((COUNTER) <= 0xFFFFU)
AnnaBridge 163:e59c8e839560 985
AnnaBridge 163:e59c8e839560 986
AnnaBridge 163:e59c8e839560 987 #define IS_RTC_SMOOTH_CALIB_PERIOD(PERIOD) (((PERIOD) == RTC_SMOOTHCALIB_PERIOD_32SEC) || \
AnnaBridge 163:e59c8e839560 988 ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_16SEC) || \
AnnaBridge 163:e59c8e839560 989 ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_8SEC))
AnnaBridge 163:e59c8e839560 990 #define IS_RTC_SMOOTH_CALIB_PLUS(PLUS) (((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_SET) || \
AnnaBridge 163:e59c8e839560 991 ((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_RESET))
AnnaBridge 163:e59c8e839560 992
AnnaBridge 163:e59c8e839560 993
AnnaBridge 163:e59c8e839560 994 #define IS_RTC_SMOOTH_CALIB_MINUS(VALUE) ((VALUE) <= 0x000001FFU)
AnnaBridge 163:e59c8e839560 995 #define IS_RTC_SHIFT_ADD1S(SEL) (((SEL) == RTC_SHIFTADD1S_RESET) || \
AnnaBridge 163:e59c8e839560 996 ((SEL) == RTC_SHIFTADD1S_SET))
AnnaBridge 163:e59c8e839560 997 #define IS_RTC_SHIFT_SUBFS(FS) ((FS) <= 0x00007FFFU)
AnnaBridge 163:e59c8e839560 998 #define IS_RTC_CALIB_OUTPUT(OUTPUT) (((OUTPUT) == RTC_CALIBOUTPUT_512HZ) || \
AnnaBridge 163:e59c8e839560 999 ((OUTPUT) == RTC_CALIBOUTPUT_1HZ))
AnnaBridge 163:e59c8e839560 1000 /**
AnnaBridge 163:e59c8e839560 1001 * @}
AnnaBridge 163:e59c8e839560 1002 */
AnnaBridge 163:e59c8e839560 1003
AnnaBridge 163:e59c8e839560 1004 /**
AnnaBridge 163:e59c8e839560 1005 * @}
AnnaBridge 163:e59c8e839560 1006 */
AnnaBridge 163:e59c8e839560 1007
AnnaBridge 163:e59c8e839560 1008 /**
AnnaBridge 163:e59c8e839560 1009 * @}
AnnaBridge 163:e59c8e839560 1010 */
AnnaBridge 163:e59c8e839560 1011
AnnaBridge 163:e59c8e839560 1012 /**
AnnaBridge 163:e59c8e839560 1013 * @}
AnnaBridge 163:e59c8e839560 1014 */
AnnaBridge 163:e59c8e839560 1015
AnnaBridge 163:e59c8e839560 1016 #ifdef __cplusplus
AnnaBridge 163:e59c8e839560 1017 }
AnnaBridge 163:e59c8e839560 1018 #endif
AnnaBridge 163:e59c8e839560 1019
AnnaBridge 163:e59c8e839560 1020 #endif /* __STM32F3xx_HAL_RTC_EX_H */
AnnaBridge 163:e59c8e839560 1021
AnnaBridge 163:e59c8e839560 1022 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/