1 /** 2 ****************************************************************************** 3 * @file stm32wbxx_hal_rtc_ex.h 4 * @author MCD Application Team 5 * @brief Header file of RTC HAL Extended module. 6 ****************************************************************************** 7 * @attention 8 * 9 * <h2><center>© Copyright (c) 2019 STMicroelectronics. 10 * All rights reserved.</center></h2> 11 * 12 * This software component is licensed by ST under BSD 3-Clause license, 13 * the "License"; You may not use this file except in compliance with the 14 * License. You may obtain a copy of the License at: 15 * opensource.org/licenses/BSD-3-Clause 16 * 17 ****************************************************************************** 18 */ 19 20 /* Define to prevent recursive inclusion -------------------------------------*/ 21 #ifndef STM32WBxx_HAL_RTC_EX_H 22 #define STM32WBxx_HAL_RTC_EX_H 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 /* Includes ------------------------------------------------------------------*/ 29 #include "stm32wbxx_hal_def.h" 30 31 /** @addtogroup STM32WBxx_HAL_Driver 32 * @{ 33 */ 34 35 /** @defgroup RTCEx RTCEx 36 * @{ 37 */ 38 39 /* Exported types ------------------------------------------------------------*/ 40 41 /** @defgroup RTCEx_Exported_Types RTCEx Exported Types 42 * @{ 43 */ 44 45 /** 46 * @brief RTC Tamper structure definition 47 */ 48 typedef struct 49 { 50 uint32_t Tamper; /*!< Specifies the Tamper Pin. 51 This parameter can be a value of @ref RTCEx_Tamper_Pins_Definitions */ 52 53 uint32_t Interrupt; /*!< Specifies the Tamper Interrupt. 54 This parameter can be a value of @ref RTCEx_Tamper_Interrupt_Definitions */ 55 56 uint32_t Trigger; /*!< Specifies the Tamper Trigger. 57 This parameter can be a value of @ref RTCEx_Tamper_Trigger_Definitions */ 58 59 uint32_t NoErase; /*!< Specifies the Tamper no erase mode. 60 This parameter can be a value of @ref RTCEx_Tamper_EraseBackUp_Definitions */ 61 62 uint32_t MaskFlag; /*!< Specifies the Tamper Flag masking. 63 This parameter can be a value of @ref RTCEx_Tamper_MaskFlag_Definitions */ 64 65 uint32_t Filter; /*!< Specifies the RTC Filter Tamper. 66 This parameter can be a value of @ref RTCEx_Tamper_Filter_Definitions */ 67 68 uint32_t SamplingFrequency; /*!< Specifies the sampling frequency. 69 This parameter can be a value of @ref RTCEx_Tamper_Sampling_Frequencies_Definitions */ 70 71 uint32_t PrechargeDuration; /*!< Specifies the Precharge Duration . 72 This parameter can be a value of @ref RTCEx_Tamper_Pin_Precharge_Duration_Definitions */ 73 74 uint32_t TamperPullUp; /*!< Specifies the Tamper PullUp . 75 This parameter can be a value of @ref RTCEx_Tamper_Pull_UP_Definitions */ 76 77 uint32_t TimeStampOnTamperDetection; /*!< Specifies the TimeStampOnTamperDetection. 78 This parameter can be a value of @ref RTCEx_Tamper_TimeStampOnTamperDetection_Definitions */ 79 }RTC_TamperTypeDef; 80 /** 81 * @} 82 */ 83 84 /* Exported constants --------------------------------------------------------*/ 85 /** @defgroup RTCEx_Exported_Constants RTCEx Exported Constants 86 * @{ 87 */ 88 89 /** @defgroup RTCEx_Output_selection_Definitions RTCEx Output Selection Definition 90 * @{ 91 */ 92 #define RTC_OUTPUT_DISABLE ((uint32_t)0x00000000U) 93 #define RTC_OUTPUT_ALARMA ((uint32_t)RTC_CR_OSEL_0) 94 #define RTC_OUTPUT_ALARMB ((uint32_t)RTC_CR_OSEL_1) 95 #define RTC_OUTPUT_WAKEUP ((uint32_t)RTC_CR_OSEL) 96 97 /** 98 * @} 99 */ 100 101 /** @defgroup RTCEx_Backup_Registers_Definitions RTCEx Backup Registers Definition 102 * @{ 103 */ 104 #define RTC_BKP_DR0 ((uint32_t)0x00000000U) 105 #define RTC_BKP_DR1 ((uint32_t)0x00000001U) 106 #define RTC_BKP_DR2 ((uint32_t)0x00000002U) 107 #define RTC_BKP_DR3 ((uint32_t)0x00000003U) 108 #define RTC_BKP_DR4 ((uint32_t)0x00000004U) 109 #define RTC_BKP_DR5 ((uint32_t)0x00000005U) 110 #define RTC_BKP_DR6 ((uint32_t)0x00000006U) 111 #define RTC_BKP_DR7 ((uint32_t)0x00000007U) 112 #define RTC_BKP_DR8 ((uint32_t)0x00000008U) 113 #define RTC_BKP_DR9 ((uint32_t)0x00000009U) 114 #define RTC_BKP_DR10 ((uint32_t)0x0000000AU) 115 #define RTC_BKP_DR11 ((uint32_t)0x0000000BU) 116 #define RTC_BKP_DR12 ((uint32_t)0x0000000CU) 117 #define RTC_BKP_DR13 ((uint32_t)0x0000000DU) 118 #define RTC_BKP_DR14 ((uint32_t)0x0000000EU) 119 #define RTC_BKP_DR15 ((uint32_t)0x0000000FU) 120 #define RTC_BKP_DR16 ((uint32_t)0x00000010U) 121 #define RTC_BKP_DR17 ((uint32_t)0x00000011U) 122 #define RTC_BKP_DR18 ((uint32_t)0x00000012U) 123 #define RTC_BKP_DR19 ((uint32_t)0x00000013U) 124 125 /** 126 * @} 127 */ 128 129 130 /** @defgroup RTCEx_Time_Stamp_Edges_definitions RTCEx Time Stamp Edges definition 131 * @{ 132 */ 133 #define RTC_TIMESTAMPEDGE_RISING ((uint32_t)0x00000000U) 134 #define RTC_TIMESTAMPEDGE_FALLING RTC_CR_TSEDGE 135 136 /** 137 * @} 138 */ 139 140 /** @defgroup RTCEx_TimeStamp_Pin_Selections RTCEx TimeStamp Pin Selection 141 * @{ 142 */ 143 #define RTC_TIMESTAMPPIN_DEFAULT ((uint32_t)0x00000000U) 144 145 /** 146 * @} 147 */ 148 149 150 /** @defgroup RTCEx_Tamper_Pins_Definitions RTCEx Tamper Pins Definition 151 * @{ 152 */ 153 #if defined(RTC_TAMPER1_SUPPORT) 154 #define RTC_TAMPER_1 RTC_TAMPCR_TAMP1E 155 #endif /* RTC_TAMPER1_SUPPORT */ 156 157 #define RTC_TAMPER_2 RTC_TAMPCR_TAMP2E 158 159 #if defined(RTC_TAMPER3_SUPPORT) 160 #define RTC_TAMPER_3 RTC_TAMPCR_TAMP3E 161 #endif /* RTC_TAMPER3_SUPPORT */ 162 /** 163 * @} 164 */ 165 166 167 /** @defgroup RTCEx_Tamper_Interrupt_Definitions RTCEx Tamper Interrupt Definitions 168 * @{ 169 */ 170 #if defined(RTC_TAMPER1_SUPPORT) 171 #define RTC_TAMPER1_INTERRUPT RTC_TAMPCR_TAMP1IE 172 #endif /* RTC_TAMPER1_SUPPORT */ 173 174 175 #define RTC_TAMPER2_INTERRUPT RTC_TAMPCR_TAMP2IE 176 177 #if defined(RTC_TAMPER3_SUPPORT) 178 #define RTC_TAMPER3_INTERRUPT RTC_TAMPCR_TAMP3IE 179 #endif /* RTC_TAMPER3_SUPPORT */ 180 #define RTC_ALL_TAMPER_INTERRUPT RTC_TAMPCR_TAMPIE 181 /** 182 * @} 183 */ 184 185 /** @defgroup RTCEx_Tamper_Trigger_Definitions RTCEx Tamper Trigger Definitions 186 * @{ 187 */ 188 #define RTC_TAMPERTRIGGER_RISINGEDGE ((uint32_t)0x00000000U) 189 #define RTC_TAMPERTRIGGER_FALLINGEDGE ((uint32_t)0x00000002U) 190 #define RTC_TAMPERTRIGGER_LOWLEVEL RTC_TAMPERTRIGGER_RISINGEDGE 191 #define RTC_TAMPERTRIGGER_HIGHLEVEL RTC_TAMPERTRIGGER_FALLINGEDGE 192 193 /** 194 * @} 195 */ 196 197 /** @defgroup RTCEx_Tamper_EraseBackUp_Definitions RTCEx Tamper EraseBackUp Definitions 198 * @{ 199 */ 200 #define RTC_TAMPER_ERASE_BACKUP_ENABLE ((uint32_t)0x00000000U) 201 #define RTC_TAMPER_ERASE_BACKUP_DISABLE ((uint32_t)0x00020000U) 202 /** 203 * @} 204 */ 205 206 /** @defgroup RTCEx_Tamper_MaskFlag_Definitions RTCEx Tamper MaskFlag Definitions 207 * @{ 208 */ 209 #define RTC_TAMPERMASK_FLAG_DISABLE ((uint32_t)0x00000000U) 210 #define RTC_TAMPERMASK_FLAG_ENABLE ((uint32_t)0x00040000U) 211 212 /** 213 * @} 214 */ 215 216 /** @defgroup RTCEx_Tamper_Filter_Definitions RTCEx Tamper Filter Definitions 217 * @{ 218 */ 219 #define RTC_TAMPERFILTER_DISABLE ((uint32_t)0x00000000U) /*!< Tamper filter is disabled */ 220 221 #define RTC_TAMPERFILTER_2SAMPLE RTC_TAMPCR_TAMPFLT_0 /*!< Tamper is activated after 2 222 consecutive samples at the active level */ 223 #define RTC_TAMPERFILTER_4SAMPLE RTC_TAMPCR_TAMPFLT_1 /*!< Tamper is activated after 4 224 consecutive samples at the active level */ 225 #define RTC_TAMPERFILTER_8SAMPLE RTC_TAMPCR_TAMPFLT /*!< Tamper is activated after 8 226 consecutive samples at the active leve. */ 227 228 /** 229 * @} 230 */ 231 232 /** @defgroup RTCEx_Tamper_Sampling_Frequencies_Definitions RTCEx Tamper Sampling Frequencies Definitions 233 * @{ 234 */ 235 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768 ((uint32_t)0x00000000U) /*!< Each of the tamper inputs are sampled 236 with a frequency = RTCCLK / 32768 */ 237 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384 RTC_TAMPCR_TAMPFREQ_0 /*!< Each of the tamper inputs are sampled 238 with a frequency = RTCCLK / 16384 */ 239 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192 RTC_TAMPCR_TAMPFREQ_1 /*!< Each of the tamper inputs are sampled 240 with a frequency = RTCCLK / 8192 */ 241 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096 ((uint32_t) (RTC_TAMPCR_TAMPFREQ_0 | RTC_TAMPCR_TAMPFREQ_1)) /*!< Each of the tamper inputs are sampled 242 with a frequency = RTCCLK / 4096 */ 243 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048 RTC_TAMPCR_TAMPFREQ_2 /*!< Each of the tamper inputs are sampled 244 with a frequency = RTCCLK / 2048 */ 245 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024 ((uint32_t) (RTC_TAMPCR_TAMPFREQ_0 | RTC_TAMPCR_TAMPFREQ_2)) /*!< Each of the tamper inputs are sampled 246 with a frequency = RTCCLK / 1024 */ 247 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512 ((uint32_t) (RTC_TAMPCR_TAMPFREQ_1 | RTC_TAMPCR_TAMPFREQ_2)) /*!< Each of the tamper inputs are sampled 248 with a frequency = RTCCLK / 512 */ 249 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256 ((uint32_t) (RTC_TAMPCR_TAMPFREQ_0 | RTC_TAMPCR_TAMPFREQ_1 | \ 250 RTC_TAMPCR_TAMPFREQ_2)) /*!< Each of the tamper inputs are sampled 251 with a frequency = RTCCLK / 256 */ 252 253 /** 254 * @} 255 */ 256 257 /** @defgroup RTCEx_Tamper_Pin_Precharge_Duration_Definitions RTCEx Tamper Pin Precharge Duration Definitions 258 * @{ 259 */ 260 #define RTC_TAMPERPRECHARGEDURATION_1RTCCLK ((uint32_t)0x00000000U) /*!< Tamper pins are pre-charged before 261 sampling during 1 RTCCLK cycle */ 262 #define RTC_TAMPERPRECHARGEDURATION_2RTCCLK RTC_TAMPCR_TAMPPRCH_0 /*!< Tamper pins are pre-charged before 263 sampling during 2 RTCCLK cycles */ 264 #define RTC_TAMPERPRECHARGEDURATION_4RTCCLK RTC_TAMPCR_TAMPPRCH_1 /*!< Tamper pins are pre-charged before 265 sampling during 4 RTCCLK cycles */ 266 #define RTC_TAMPERPRECHARGEDURATION_8RTCCLK ((uint32_t)(RTC_TAMPCR_TAMPPRCH_0 | RTC_TAMPCR_TAMPPRCH_1)) /*!< Tamper pins are pre-charged before 267 sampling during 8 RTCCLK cycles */ 268 269 /** 270 * @} 271 */ 272 273 /** @defgroup RTCEx_Tamper_TimeStampOnTamperDetection_Definitions RTCEx Tamper TimeStampOnTamperDetection Definitions 274 * @{ 275 */ 276 #define RTC_TIMESTAMPONTAMPERDETECTION_ENABLE RTC_TAMPCR_TAMPTS /*!< TimeStamp on Tamper Detection event saved */ 277 #define RTC_TIMESTAMPONTAMPERDETECTION_DISABLE ((uint32_t)0x00000000U) /*!< TimeStamp on Tamper Detection event is not saved */ 278 279 /** 280 * @} 281 */ 282 283 /** @defgroup RTCEx_Tamper_Pull_UP_Definitions RTCEx Tamper Pull UP Definitions 284 * @{ 285 */ 286 #define RTC_TAMPER_PULLUP_ENABLE ((uint32_t)0x00000000U) /*!< Tamper pins are pre-charged before sampling */ 287 #define RTC_TAMPER_PULLUP_DISABLE RTC_TAMPCR_TAMPPUDIS /*!< Tamper pins pre-charge is disabled */ 288 289 /** 290 * @} 291 */ 292 293 /** @defgroup RTCEx_Wakeup_Timer_Definitions RTCEx Wakeup Timer Definitions 294 * @{ 295 */ 296 #define RTC_WAKEUPCLOCK_RTCCLK_DIV16 ((uint32_t)0x00000000U) 297 #define RTC_WAKEUPCLOCK_RTCCLK_DIV8 RTC_CR_WUCKSEL_0 298 #define RTC_WAKEUPCLOCK_RTCCLK_DIV4 RTC_CR_WUCKSEL_1 299 #define RTC_WAKEUPCLOCK_RTCCLK_DIV2 ((uint32_t) (RTC_CR_WUCKSEL_0 | RTC_CR_WUCKSEL_1)) 300 #define RTC_WAKEUPCLOCK_CK_SPRE_16BITS RTC_CR_WUCKSEL_2 301 #define RTC_WAKEUPCLOCK_CK_SPRE_17BITS ((uint32_t) (RTC_CR_WUCKSEL_1 | RTC_CR_WUCKSEL_2)) 302 /** 303 * @} 304 */ 305 306 /** @defgroup RTCEx_Smooth_calib_period_Definitions RTCEx Smooth calib period Definitions 307 * @{ 308 */ 309 #define RTC_SMOOTHCALIB_PERIOD_32SEC ((uint32_t)0x00000000U) /*!< If RTCCLK = 32768 Hz, Smooth calibation 310 period is 32s, else 2exp20 RTCCLK pulses */ 311 #define RTC_SMOOTHCALIB_PERIOD_16SEC RTC_CALR_CALW16 /*!< If RTCCLK = 32768 Hz, Smooth calibation 312 period is 16s, else 2exp19 RTCCLK pulses */ 313 #define RTC_SMOOTHCALIB_PERIOD_8SEC RTC_CALR_CALW8 /*!< If RTCCLK = 32768 Hz, Smooth calibation 314 period is 8s, else 2exp18 RTCCLK pulses */ 315 316 /** 317 * @} 318 */ 319 320 /** @defgroup RTCEx_Smooth_calib_Plus_pulses_Definitions RTCEx Smooth calib Plus pulses Definitions 321 * @{ 322 */ 323 #define RTC_SMOOTHCALIB_PLUSPULSES_SET RTC_CALR_CALP /*!< The number of RTCCLK pulses added 324 during a X -second window = Y - CALM[8:0] 325 with Y = 512, 256, 128 when X = 32, 16, 8 */ 326 #define RTC_SMOOTHCALIB_PLUSPULSES_RESET ((uint32_t)0x00000000U) /*!< The number of RTCCLK pulses subbstited 327 during a 32-second window = CALM[8:0] */ 328 329 /** 330 * @} 331 */ 332 /** @defgroup RTCEx_Calib_Output_selection_Definitions RTCEx Calib Output selection Definitions 333 * @{ 334 */ 335 #define RTC_CALIBOUTPUT_512HZ ((uint32_t)0x00000000U) 336 #define RTC_CALIBOUTPUT_1HZ RTC_CR_COSEL 337 338 /** 339 * @} 340 */ 341 342 343 /** @defgroup RTCEx_Add_1_Second_Parameter_Definition RTCEx Add 1 Second Parameter Definitions 344 * @{ 345 */ 346 #define RTC_SHIFTADD1S_RESET ((uint32_t)0x00000000U) 347 #define RTC_SHIFTADD1S_SET RTC_SHIFTR_ADD1S 348 /** 349 * @} 350 */ 351 /** @defgroup RTCEx_Interrupts_Definitions RTCEx Interrupts Definitions 352 * @{ 353 */ 354 #if defined(RTC_TAMPER3_SUPPORT) 355 #define RTC_IT_TAMP3 ((uint32_t)RTC_TAMPCR_TAMP3IE) /*!< Enable Tamper 3 Interrupt */ 356 #endif 357 /** 358 * @} 359 */ 360 361 /** @defgroup RTCEx_Flags_Definitions RTCEx Flags Definitions 362 * @{ 363 */ 364 #if defined(RTC_TAMPER3_SUPPORT) 365 #define RTC_FLAG_TAMP3F ((uint32_t)RTC_ISR_TAMP3F) 366 #endif 367 /** 368 * @} 369 */ 370 371 /** 372 * @} 373 */ 374 375 /* Exported macros -----------------------------------------------------------*/ 376 /** @defgroup RTCEx_Exported_Macros RTCEx Exported Macros 377 * @{ 378 */ 379 380 /* ---------------------------------WAKEUPTIMER---------------------------------*/ 381 /** @defgroup RTCEx_WakeUp_Timer RTC WakeUp Timer 382 * @{ 383 */ 384 /** 385 * @brief Enable the RTC WakeUp Timer peripheral. 386 * @param __HANDLE__ specifies the RTC handle. 387 * @retval None 388 */ 389 #define __HAL_RTC_WAKEUPTIMER_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_WUTE)) 390 391 /** 392 * @brief Disable the RTC WakeUp Timer peripheral. 393 * @param __HANDLE__ specifies the RTC handle. 394 * @retval None 395 */ 396 #define __HAL_RTC_WAKEUPTIMER_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_WUTE)) 397 398 /** 399 * @brief Enable the RTC WakeUpTimer interrupt. 400 * @param __HANDLE__ specifies the RTC handle. 401 * @param __INTERRUPT__ specifies the RTC WakeUpTimer interrupt sources to be enabled. 402 * This parameter can be: 403 * @arg RTC_IT_WUT: WakeUpTimer interrupt 404 * @retval None 405 */ 406 #define __HAL_RTC_WAKEUPTIMER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__)) 407 408 /** 409 * @brief Disable the RTC WakeUpTimer interrupt. 410 * @param __HANDLE__ specifies the RTC handle. 411 * @param __INTERRUPT__ specifies the RTC WakeUpTimer interrupt sources to be disabled. 412 * This parameter can be: 413 * @arg RTC_IT_WUT: WakeUpTimer interrupt 414 * @retval None 415 */ 416 #define __HAL_RTC_WAKEUPTIMER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__)) 417 418 /** 419 * @brief Check whether the specified RTC WakeUpTimer interrupt has occurred or not. 420 * @param __HANDLE__ specifies the RTC handle. 421 * @param __INTERRUPT__ specifies the RTC WakeUpTimer interrupt to check. 422 * This parameter can be: 423 * @arg RTC_IT_WUT: WakeUpTimer interrupt 424 * @retval None 425 */ 426 #define __HAL_RTC_WAKEUPTIMER_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 4U)) != 0U) ? 1U : 0U) 427 428 /** 429 * @brief Check whether the specified RTC Wake Up timer interrupt has been enabled or not. 430 * @param __HANDLE__ specifies the RTC handle. 431 * @param __INTERRUPT__ specifies the RTC Wake Up timer interrupt sources to check. 432 * This parameter can be: 433 * @arg RTC_IT_WUT: WakeUpTimer interrupt 434 * @retval None 435 */ 436 #define __HAL_RTC_WAKEUPTIMER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != 0U) ? 1U : 0U) 437 438 /** 439 * @brief Get the selected RTC WakeUpTimer's flag status. 440 * @param __HANDLE__ specifies the RTC handle. 441 * @param __FLAG__ specifies the RTC WakeUpTimer Flag is pending or not. 442 * This parameter can be: 443 * @arg RTC_FLAG_WUTF 444 * @arg RTC_FLAG_WUTWF 445 * @retval None 446 */ 447 #define __HAL_RTC_WAKEUPTIMER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U) ? 1U : 0U) 448 449 /** 450 * @brief Clear the RTC Wake Up timer's pending flags. 451 * @param __HANDLE__ specifies the RTC handle. 452 * @param __FLAG__ specifies the RTC WakeUpTimer Flag to clear. 453 * This parameter can be: 454 * @arg RTC_FLAG_WUTF 455 * @retval None 456 */ 457 #define __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT)) 458 459 /** 460 * @brief Enable interrupt on the RTC WakeUp Timer associated Exti line of core 1. 461 * @retval None 462 */ 463 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT() (EXTI->IMR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT) 464 465 /** 466 * @brief Disable interrupt on the RTC WakeUp Timer associated Exti line of core 1. 467 * @retval None 468 */ 469 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT() (EXTI->IMR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT)) 470 471 472 /** 473 * @brief Enable interrupt on the RTC WakeUp Timer associated Exti line of core 2. 474 * @retval None 475 */ 476 #define __HAL_RTC_WAKEUPTIMER_EXTIC2_ENABLE_IT() (EXTI->C2IMR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT) 477 478 /** 479 * @brief Disable interrupt on the RTC WakeUp Timer associated Exti line of core 2. 480 * @retval None 481 */ 482 #define __HAL_RTC_WAKEUPTIMER_EXTIC2_DISABLE_IT() (EXTI->C2IMR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT)) 483 484 485 /** 486 * @brief Enable event on the RTC WakeUp Timer associated Exti line of core 1. 487 * @retval None. 488 */ 489 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_EVENT() (EXTI->EMR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT) 490 491 /** 492 * @brief Enable event on the RTC WakeUp Timer associated Exti line of core 2. 493 * @retval None. 494 */ 495 #define __HAL_RTC_WAKEUPTIMER_EXTIC2_ENABLE_EVENT() (EXTI->C2EMR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT) 496 497 498 /** 499 * @brief Disable event on the RTC WakeUp Timer associated Exti line of core 1. 500 * @retval None. 501 */ 502 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_EVENT() (EXTI->EMR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT)) 503 504 /** 505 * @brief Disable event on the RTC WakeUp Timer associated Exti line of core 2. 506 * @retval None. 507 */ 508 #define __HAL_RTC_WAKEUPTIMER_EXTIC2_DISABLE_EVENT() (EXTI->C2EMR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT)) 509 510 511 /*---------------*/ 512 /** 513 * @brief Enable falling edge trigger on the RTC WakeUp Timer associated Exti line. 514 * @retval None. 515 */ 516 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT) 517 518 /** 519 * @brief Disable falling edge trigger on the RTC WakeUp Timer associated Exti line. 520 * @retval None. 521 */ 522 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT)) 523 524 /** 525 * @brief Enable rising edge trigger on the RTC WakeUp Timer associated Exti line. 526 * @retval None. 527 */ 528 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT) 529 530 /** 531 * @brief Disable rising edge trigger on the RTC WakeUp Timer associated Exti line. 532 * @retval None. 533 */ 534 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR1 &= ~(RTC_EXTI_LINE_WAKEUPTIMER_EVENT)) 535 536 537 /** 538 * @brief Enable rising & falling edge trigger on the RTC WakeUp Timer associated Exti line. 539 * @retval None 540 */ 541 #define __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_EDGE() do { \ 542 __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE(); \ 543 __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE(); \ 544 } while(0U) 545 546 /** 547 * @brief Disable rising & falling edge trigger on the RTC WakeUp Timer associated Exti line. 548 * This parameter can be: 549 * @retval None 550 */ 551 #define __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_EDGE() do { \ 552 __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE(); \ 553 __HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE(); \ 554 } while(0U) 555 556 /** 557 * @brief Check whether the RTC WakeUp Timer associated Exti line interrupt flag is set or not of core 1. 558 * @retval Line Status. 559 */ 560 #define __HAL_RTC_WAKEUPTIMER_EXTI_GET_FLAG() (EXTI->PR1 & RTC_EXTI_LINE_WAKEUPTIMER_EVENT) 561 562 /** 563 * @brief Check whether the RTC WakeUp Timer associated Exti line interrupt flag is set or not of core 2. 564 * @retval Line Status. 565 */ 566 #define __HAL_RTC_WAKEUPTIMER_EXTIC2_GET_FLAG() (EXTI->PR1 & RTC_EXTI_LINE_WAKEUPTIMER_EVENT) 567 568 569 570 /** 571 * @brief Clear the RTC WakeUp Timer associated Exti line flag of core 1. 572 * @retval None. 573 */ 574 #define __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG() (EXTI->PR1 = RTC_EXTI_LINE_WAKEUPTIMER_EVENT) 575 576 /** 577 * @brief Clear the RTC WakeUp Timer associated Exti line flag of core 2. 578 * @retval None. 579 */ 580 #define __HAL_RTC_WAKEUPTIMER_EXTIC2_CLEAR_FLAG() (EXTI->PR1 = RTC_EXTI_LINE_WAKEUPTIMER_EVENT) 581 582 583 /*---------------*/ 584 /** 585 * @brief Generate a Software interrupt on the RTC WakeUp Timer associated Exti line. 586 * @retval None. 587 */ 588 #define __HAL_RTC_WAKEUPTIMER_EXTI_GENERATE_SWIT() (EXTI->SWIER1 |= RTC_EXTI_LINE_WAKEUPTIMER_EVENT) 589 /*---------------*/ 590 591 /** 592 * @} 593 */ 594 595 /* ---------------------------------TIMESTAMP---------------------------------*/ 596 /** @defgroup RTCEx_Timestamp RTC Timestamp 597 * @{ 598 */ 599 /** 600 * @brief Enable the RTC TimeStamp peripheral. 601 * @param __HANDLE__ specifies the RTC handle. 602 * @retval None 603 */ 604 #define __HAL_RTC_TIMESTAMP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_TSE)) 605 606 /** 607 * @brief Disable the RTC TimeStamp peripheral. 608 * @param __HANDLE__ specifies the RTC handle. 609 * @retval None 610 */ 611 #define __HAL_RTC_TIMESTAMP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_TSE)) 612 613 /** 614 * @brief Enable the RTC TimeStamp interrupt. 615 * @param __HANDLE__ specifies the RTC handle. 616 * @param __INTERRUPT__ specifies the RTC TimeStamp interrupt source to be enabled. 617 * This parameter can be: 618 * @arg RTC_IT_TS: TimeStamp interrupt 619 * @retval None 620 */ 621 #define __HAL_RTC_TIMESTAMP_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__)) 622 623 /** 624 * @brief Disable the RTC TimeStamp interrupt. 625 * @param __HANDLE__ specifies the RTC handle. 626 * @param __INTERRUPT__ specifies the RTC TimeStamp interrupt source to be disabled. 627 * This parameter can be: 628 * @arg RTC_IT_TS: TimeStamp interrupt 629 * @retval None 630 */ 631 #define __HAL_RTC_TIMESTAMP_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__)) 632 633 /** 634 * @brief Check whether the specified RTC TimeStamp interrupt has occurred or not. 635 * @param __HANDLE__ specifies the RTC handle. 636 * @param __INTERRUPT__ specifies the RTC TimeStamp interrupt to check. 637 * This parameter can be: 638 * @arg RTC_IT_TS: TimeStamp interrupt 639 * @retval None 640 */ 641 #define __HAL_RTC_TIMESTAMP_GET_IT(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 4U)) != 0U) ? 1U : 0U) 642 643 /** 644 * @brief Check whether the specified RTC Time Stamp interrupt has been enabled or not. 645 * @param __HANDLE__ specifies the RTC handle. 646 * @param __INTERRUPT__ specifies the RTC Time Stamp interrupt source to check. 647 * This parameter can be: 648 * @arg RTC_IT_TS: TimeStamp interrupt 649 * @retval None 650 */ 651 #define __HAL_RTC_TIMESTAMP_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->CR) & (__INTERRUPT__)) != 0U) ? 1U : 0U) 652 653 /** 654 * @brief Get the selected RTC TimeStamp's flag status. 655 * @param __HANDLE__ specifies the RTC handle. 656 * @param __FLAG__ specifies the RTC TimeStamp Flag is pending or not. 657 * This parameter can be: 658 * @arg RTC_FLAG_TSF 659 * @arg RTC_FLAG_TSOVF 660 * @retval None 661 */ 662 #define __HAL_RTC_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U) ? 1U : 0U) 663 664 /** 665 * @brief Clear the RTC Time Stamp's pending flags. 666 * @param __HANDLE__ specifies the RTC handle. 667 * @param __FLAG__ specifies the RTC TimeStamp Flag to clear. 668 * This parameter can be: 669 * @arg RTC_FLAG_TSF 670 * @arg RTC_FLAG_TSOVF 671 * @retval None 672 */ 673 #define __HAL_RTC_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT)) 674 675 676 /** 677 * @} 678 */ 679 680 /* ---------------------------------TAMPER------------------------------------*/ 681 /** @defgroup RTCEx_Tamper RTC Tamper 682 * @{ 683 */ 684 685 #if defined(RTC_TAMPER1_SUPPORT) 686 /** 687 * @brief Enable the RTC Tamper1 input detection. 688 * @param __HANDLE__ specifies the RTC handle. 689 * @retval None 690 */ 691 #define __HAL_RTC_TAMPER1_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR |= (RTC_TAMPCR_TAMP1E)) 692 693 /** 694 * @brief Disable the RTC Tamper1 input detection. 695 * @param __HANDLE__ specifies the RTC handle. 696 * @retval None 697 */ 698 #define __HAL_RTC_TAMPER1_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TAMPCR_TAMP1E)) 699 #endif /* RTC_TAMPER1_SUPPORT */ 700 701 /** 702 * @brief Enable the RTC Tamper2 input detection. 703 * @param __HANDLE__ specifies the RTC handle. 704 * @retval None 705 */ 706 #define __HAL_RTC_TAMPER2_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR |= (RTC_TAMPCR_TAMP2E)) 707 708 /** 709 * @brief Disable the RTC Tamper2 input detection. 710 * @param __HANDLE__ specifies the RTC handle. 711 * @retval None 712 */ 713 #define __HAL_RTC_TAMPER2_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TAMPCR_TAMP2E)) 714 715 #if defined(RTC_TAMPER3_SUPPORT) 716 /** 717 * @brief Enable the RTC Tamper3 input detection. 718 * @param __HANDLE__ specifies the RTC handle. 719 * @retval None 720 */ 721 #define __HAL_RTC_TAMPER3_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR |= (RTC_TAMPCR_TAMP3E)) 722 723 /** 724 * @brief Disable the RTC Tamper3 input detection. 725 * @param __HANDLE__ specifies the RTC handle. 726 * @retval None 727 */ 728 #define __HAL_RTC_TAMPER3_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TAMPCR_TAMP3E)) 729 #endif /* RTC_TAMPER3_SUPPORT */ 730 731 732 /**************************************************************************************************/ 733 734 /** 735 * @brief Enable the RTC Tamper interrupt. 736 * @param __HANDLE__ specifies the RTC handle. 737 * @param __INTERRUPT__ specifies the RTC Tamper interrupt sources to be enabled. 738 * This parameter can be any combination of the following values: 739 * @arg RTC_IT_TAMP: All tampers interrupts 740 * @arg RTC_IT_TAMP1: Tamper1 interrupt (*) 741 * @arg RTC_IT_TAMP2: Tamper2 interrupt 742 * @arg RTC_IT_TAMP3: Tamper3 interrupt (*) 743 * 744 * (*) Value not defined in all devices. \n 745 * 746 * @retval None 747 */ 748 #define __HAL_RTC_TAMPER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAMPCR |= (__INTERRUPT__)) 749 750 /** 751 * @brief Disable the RTC Tamper interrupt. 752 * @param __HANDLE__ specifies the RTC handle. 753 * @param __INTERRUPT__ specifies the RTC Tamper interrupt sources to be disabled. 754 * This parameter can be any combination of the following values: 755 * @arg RTC_IT_TAMP: All tampers interrupts 756 * @arg RTC_IT_TAMP1: Tamper1 interrupt (*) 757 * @arg RTC_IT_TAMP2: Tamper2 interrupt 758 * @arg RTC_IT_TAMP3: Tamper3 interrupt (*) 759 * 760 * (*) Value not defined in all devices. \n 761 * 762 * @retval None 763 */ 764 #define __HAL_RTC_TAMPER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->TAMPCR &= ~(__INTERRUPT__)) 765 766 /**************************************************************************************************/ 767 768 /** 769 * @brief Check whether the specified RTC Tamper interrupt has occurred or not. 770 * @param __HANDLE__ specifies the RTC handle. 771 * @param __INTERRUPT__ specifies the RTC Tamper interrupt to check. 772 * This parameter can be: 773 * @arg RTC_IT_TAMP1: Tamper1 interrupt (*) 774 * @arg RTC_IT_TAMP2: Tamper2 interrupt 775 * @arg RTC_IT_TAMP3: Tamper3 interrupt (*) 776 * 777 * (*) Value not defined in all devices. \n 778 * 779 * @retval None 780 */ 781 #if defined(RTC_TAMPER1_SUPPORT) && defined(RTC_TAMPER3_SUPPORT) 782 #define __HAL_RTC_TAMPER_GET_IT(__HANDLE__, __INTERRUPT__) (((__INTERRUPT__) == RTC_IT_TAMP1) ? (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 3U)) != 0U) ? 1U : 0U) : \ 783 ((__INTERRUPT__) == RTC_IT_TAMP2) ? (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 5U)) != 0U) ? 1U : 0U) : \ 784 ((__INTERRUPT__) == RTC_IT_TAMP3) ? (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 7U)) != 0U) ? 1U : 0U)) 785 #else 786 #define __HAL_RTC_TAMPER_GET_IT(__HANDLE__, __INTERRUPT__) (((__INTERRUPT__) == RTC_IT_TAMP1) ? (((((__HANDLE__)->Instance->ISR) & ((__INTERRUPT__)>> 3U)) != 0U) ? 1U : 0U)) 787 #endif 788 789 /**************************************************************************************************/ 790 791 /** 792 * @brief Check whether the specified RTC Tamper interrupt has been enabled or not. 793 * @param __HANDLE__ specifies the RTC handle. 794 * @param __INTERRUPT__ specifies the RTC Tamper interrupt source to check. 795 * This parameter can be: 796 * @arg RTC_IT_TAMP: All tampers interrupts 797 * @arg RTC_IT_TAMP1: Tamper1 interrupt (*) 798 * @arg RTC_IT_TAMP2: Tamper2 interrupt 799 * @arg RTC_IT_TAMP3: Tamper3 interrupt (*) 800 * 801 * (*) Value not defined in all devices. \n 802 * 803 * @retval None 804 */ 805 #define __HAL_RTC_TAMPER_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((((__HANDLE__)->Instance->TAMPCR) & (__INTERRUPT__)) != 0U) ? 1U : 0U) 806 807 808 /** 809 * @brief Get the selected RTC Tamper's flag status. 810 * @param __HANDLE__ specifies the RTC handle. 811 * @param __FLAG__ specifies the RTC Tamper Flag is pending or not. 812 * This parameter can be: 813 * @arg RTC_FLAG_TAMP1F: Tamper1 flag (*) 814 * @arg RTC_FLAG_TAMP2F: Tamper2 flag 815 * @arg RTC_FLAG_TAMP3F: Tamper3 flag (*) 816 * 817 * (*) Value not defined in all devices. \n 818 * 819 * @retval None 820 */ 821 #define __HAL_RTC_TAMPER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U) ? 1U : 0U) 822 823 /** 824 * @brief Clear the RTC Tamper's pending flags. 825 * @param __HANDLE__ specifies the RTC handle. 826 * @param __FLAG__ specifies the RTC Tamper Flag to clear. 827 * This parameter can be: 828 * @arg RTC_FLAG_TAMP1F: Tamper1 flag (*) 829 * @arg RTC_FLAG_TAMP2F: Tamper2 flag 830 * @arg RTC_FLAG_TAMP3F: Tamper3 flag (*) 831 * 832 * (*) Value not defined in all devices. \n 833 * 834 * @retval None 835 */ 836 #define __HAL_RTC_TAMPER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT)) 837 838 839 /**************************************************************************************************/ 840 841 842 #if defined(RTC_INTERNALTS_SUPPORT) 843 /** 844 * @brief Enable the RTC internal TimeStamp peripheral. 845 * @param __HANDLE__ specifies the RTC handle. 846 * @retval None 847 */ 848 #define __HAL_RTC_INTERNAL_TIMESTAMP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_ITSE)) 849 850 /** 851 * @brief Disable the RTC internal TimeStamp peripheral. 852 * @param __HANDLE__ specifies the RTC handle. 853 * @retval None 854 */ 855 #define __HAL_RTC_INTERNAL_TIMESTAMP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_ITSE)) 856 857 /** 858 * @brief Get the selected RTC Internal Time Stamp's flag status. 859 * @param __HANDLE__ specifies the RTC handle. 860 * @param __FLAG__ specifies the RTC Internal Time Stamp Flag is pending or not. 861 * This parameter can be: 862 * @arg RTC_FLAG_ITSF 863 * @retval None 864 */ 865 #define __HAL_RTC_INTERNAL_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U) ? 1U : 0U) 866 867 /** 868 * @brief Clear the RTC Internal Time Stamp's pending flags. 869 * @param __HANDLE__ specifies the RTC handle. 870 * @param __FLAG__ specifies the RTC Internal Time Stamp Flag source to clear. 871 * This parameter can be: 872 * @arg RTC_FLAG_ITSF 873 * @retval None 874 */ 875 #define __HAL_RTC_INTERNAL_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~((__FLAG__) | RTC_ISR_INIT)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT)) 876 #endif 877 /**************************************************************************************************/ 878 879 /** 880 * @} 881 */ 882 883 /* --------------------------TAMPER/TIMESTAMP---------------------------------*/ 884 /** @defgroup RTCEx_Tamper_Timestamp EXTI RTC Tamper Timestamp EXTI 885 * @{ 886 */ 887 888 /* TAMPER TIMESTAMP EXTI */ 889 /* --------------------- */ 890 891 /** 892 * @brief Enable interrupt on the RTC Tamper and Timestamp associated Exti line of core 1. 893 * @retval None 894 */ 895 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT() (EXTI->IMR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT) 896 897 /** 898 * @brief Enable interrupt on the RTC Tamper and Timestamp associated Exti line of core 2. 899 * @retval None 900 */ 901 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTIC2_ENABLE_IT() (EXTI->C2IMR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT) 902 903 /** 904 * @brief Disable interrupt on the RTC Tamper and Timestamp associated Exti line of core 1. 905 * @retval None 906 */ 907 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_IT() (EXTI->IMR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)) 908 909 /** 910 * @brief Disable interrupt on the RTC Tamper and Timestamp associated Exti line of core 2. 911 * @retval None 912 */ 913 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTIC2_DISABLE_IT() (EXTI->C2IMR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)) 914 915 /** 916 * @brief Enable event on the RTC Tamper and Timestamp associated Exti line of core 1. 917 * @retval None. 918 */ 919 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_EVENT() (EXTI->EMR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT) 920 921 /** 922 * @brief Enable event on the RTC Tamper and Timestamp associated Exti line of core 2. 923 * @retval None. 924 */ 925 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTIC2_ENABLE_EVENT() (EXTI->C2EMR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT) 926 927 /** 928 * @brief Disable event on the RTC Tamper and Timestamp associated Exti line of core 1. 929 * @retval None. 930 */ 931 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_EVENT() (EXTI->EMR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)) 932 933 /** 934 * @brief Disable event on the RTC Tamper and Timestamp associated Exti line of core 2. 935 * @retval None. 936 */ 937 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTIC2_DISABLE_EVENT() (EXTI->C2EMR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)) 938 939 /*-----------------*/ 940 /** 941 * @brief Enable falling edge trigger on the RTC Tamper and Timestamp associated Exti line. 942 * @retval None. 943 */ 944 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE() (EXTI->FTSR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT) 945 946 /** 947 * @brief Disable falling edge trigger on the RTC Tamper and Timestamp associated Exti line. 948 * @retval None. 949 */ 950 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE() (EXTI->FTSR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)) 951 952 /** 953 * @brief Enable rising edge trigger on the RTC Tamper and Timestamp associated Exti line. 954 * @retval None. 955 */ 956 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE() (EXTI->RTSR1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT) 957 958 /** 959 * @brief Disable rising edge trigger on the RTC Tamper and Timestamp associated Exti line. 960 * @retval None. 961 */ 962 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE() (EXTI->RTSR1 &= ~(RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT)) 963 964 965 /** 966 * @brief Enable rising & falling edge trigger on the RTC Tamper and Timestamp associated Exti line. 967 * @retval None. 968 */ 969 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_FALLING_EDGE() do { \ 970 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE(); \ 971 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_FALLING_EDGE(); \ 972 } while(0U) 973 974 /** 975 * @brief Disable rising & falling edge trigger on the RTC Tamper and Timestamp associated Exti line. 976 * This parameter can be: 977 * @retval None. 978 */ 979 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_FALLING_EDGE() do { \ 980 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_RISING_EDGE(); \ 981 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_DISABLE_FALLING_EDGE(); \ 982 } while(0U) 983 984 /** 985 * @brief Check whether the RTC Tamper and Timestamp associated Exti line interrupt flag is set or not of core 1. 986 * @retval Line Status. 987 */ 988 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG() (EXTI->PR1 & RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT) 989 990 /** 991 * @brief Check whether the RTC Tamper and Timestamp associated Exti line interrupt flag is set or not of core 2. 992 * @retval Line Status. 993 */ 994 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTIC2_GET_FLAG() (EXTI->PR2 & RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT) 995 996 /** 997 * @brief Clear the RTC Tamper and Timestamp associated Exti line flag of core 1. 998 * @retval None. 999 */ 1000 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG() (EXTI->PR1 = RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT) 1001 1002 /** 1003 * @brief Clear the RTC Tamper and Timestamp associated Exti line flag of core 2. 1004 * @retval None. 1005 */ 1006 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTIC2_CLEAR_FLAG() (EXTI->PR1 = RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT) 1007 1008 /** 1009 * @brief Generate a Software interrupt on the RTC Tamper and Timestamp associated Exti line 1010 * @retval None. 1011 */ 1012 #define __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GENERATE_SWIT() (EXTI->SWIER1 |= RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT) 1013 1014 1015 1016 /** 1017 * @} 1018 */ 1019 1020 /* ------------------------------Calibration----------------------------------*/ 1021 /** @defgroup RTCEx_Calibration RTC Calibration 1022 * @{ 1023 */ 1024 1025 /** 1026 * @brief Enable the RTC calibration output. 1027 * @param __HANDLE__ specifies the RTC handle. 1028 * @retval None 1029 */ 1030 #define __HAL_RTC_CALIBRATION_OUTPUT_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_COE)) 1031 1032 /** 1033 * @brief Disable the calibration output. 1034 * @param __HANDLE__ specifies the RTC handle. 1035 * @retval None 1036 */ 1037 #define __HAL_RTC_CALIBRATION_OUTPUT_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_COE)) 1038 1039 1040 /** 1041 * @brief Enable the clock reference detection. 1042 * @param __HANDLE__ specifies the RTC handle. 1043 * @retval None 1044 */ 1045 #define __HAL_RTC_CLOCKREF_DETECTION_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_REFCKON)) 1046 1047 /** 1048 * @brief Disable the clock reference detection. 1049 * @param __HANDLE__ specifies the RTC handle. 1050 * @retval None 1051 */ 1052 #define __HAL_RTC_CLOCKREF_DETECTION_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_REFCKON)) 1053 1054 1055 /** 1056 * @brief Get the selected RTC shift operation's flag status. 1057 * @param __HANDLE__ specifies the RTC handle. 1058 * @param __FLAG__ specifies the RTC shift operation Flag is pending or not. 1059 * This parameter can be: 1060 * @arg RTC_FLAG_SHPF 1061 * @retval None 1062 */ 1063 #define __HAL_RTC_SHIFT_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != 0U)? 1U : 0U) 1064 /** 1065 * @} 1066 */ 1067 1068 /** 1069 * @} 1070 */ 1071 1072 /* Exported functions --------------------------------------------------------*/ 1073 /** @defgroup RTCEx_Exported_Functions RTCEx Exported Functions 1074 * @{ 1075 */ 1076 1077 /* RTC TimeStamp and Tamper functions *****************************************/ 1078 /** @defgroup RTCEx_Exported_Functions_Group1 Extended RTC TimeStamp and Tamper functions 1079 * @{ 1080 */ 1081 1082 HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin); 1083 HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin); 1084 HAL_StatusTypeDef HAL_RTCEx_DeactivateTimeStamp(RTC_HandleTypeDef *hrtc); 1085 #if defined(RTC_INTERNALTS_SUPPORT) 1086 HAL_StatusTypeDef HAL_RTCEx_SetInternalTimeStamp(RTC_HandleTypeDef *hrtc); 1087 HAL_StatusTypeDef HAL_RTCEx_DeactivateInternalTimeStamp(RTC_HandleTypeDef *hrtc); 1088 #endif 1089 HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format); 1090 1091 HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef* sTamper); 1092 HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef* sTamper); 1093 HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper); 1094 void HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc); 1095 1096 #if defined(RTC_TAMPER1_SUPPORT) 1097 void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc); 1098 #endif /* RTC_TAMPER1_SUPPORT */ 1099 void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc); 1100 #if defined(RTC_TAMPER3_SUPPORT) 1101 void HAL_RTCEx_Tamper3EventCallback(RTC_HandleTypeDef *hrtc); 1102 #endif /* RTC_TAMPER3_SUPPORT */ 1103 void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc); 1104 HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout); 1105 #if defined(RTC_TAMPER1_SUPPORT) 1106 HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout); 1107 #endif /* RTC_TAMPER1_SUPPORT */ 1108 HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout); 1109 #if defined(RTC_TAMPER3_SUPPORT) 1110 HAL_StatusTypeDef HAL_RTCEx_PollForTamper3Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout); 1111 #endif /* RTC_TAMPER3_SUPPORT */ 1112 /** 1113 * @} 1114 */ 1115 1116 /* RTC Wake-up functions ******************************************************/ 1117 /** @defgroup RTCEx_Exported_Functions_Group2 Extended RTC Wake-up functions 1118 * @{ 1119 */ 1120 1121 HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock); 1122 HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock); 1123 HAL_StatusTypeDef HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc); 1124 uint32_t HAL_RTCEx_GetWakeUpTimer(RTC_HandleTypeDef *hrtc); 1125 void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc); 1126 void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc); 1127 HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout); 1128 /** 1129 * @} 1130 */ 1131 1132 /* Extended Control functions ************************************************/ 1133 /** @defgroup RTCEx_Exported_Functions_Group3 Extended Peripheral Control functions 1134 * @{ 1135 */ 1136 1137 void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data); 1138 uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister); 1139 1140 HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmoothCalibMinusPulsesValue); 1141 HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS); 1142 HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput); 1143 HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef *hrtc); 1144 HAL_StatusTypeDef HAL_RTCEx_SetRefClock(RTC_HandleTypeDef *hrtc); 1145 HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock(RTC_HandleTypeDef *hrtc); 1146 HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef *hrtc); 1147 HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow(RTC_HandleTypeDef *hrtc); 1148 /** 1149 * @} 1150 */ 1151 1152 /* Extended RTC features functions *******************************************/ 1153 /** @defgroup RTCEx_Exported_Functions_Group4 Extended features functions 1154 * @{ 1155 */ 1156 void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc); 1157 HAL_StatusTypeDef HAL_RTCEx_PollForAlarmBEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout); 1158 /** 1159 * @} 1160 */ 1161 1162 /** 1163 * @} 1164 */ 1165 1166 /* Private types -------------------------------------------------------------*/ 1167 /* Private variables ---------------------------------------------------------*/ 1168 /* Private constants ---------------------------------------------------------*/ 1169 /** @defgroup RTCEx_Private_Constants RTCEx Private Constants 1170 * @{ 1171 */ 1172 1173 /* Masks Definition */ 1174 1175 #if defined(RTC_TAMPER1_SUPPORT) && defined(RTC_TAMPER3_SUPPORT) 1176 1177 #define RTC_FLAGS_MASK ((uint32_t) (RTC_FLAG_RECALPF | RTC_FLAG_TAMP3F | RTC_FLAG_TAMP2F | \ 1178 RTC_FLAG_TAMP1F| RTC_FLAG_TSOVF | RTC_FLAG_TSF | \ 1179 RTC_FLAG_WUTF | RTC_FLAG_ALRBF | RTC_FLAG_ALRAF | \ 1180 RTC_FLAG_INITF | RTC_FLAG_RSF | \ 1181 RTC_FLAG_INITS | RTC_FLAG_SHPF | RTC_FLAG_WUTWF | \ 1182 RTC_FLAG_ALRBWF | RTC_FLAG_ALRAWF)) 1183 1184 #define RTC_TAMPCR_TAMPXE ((uint32_t) (RTC_TAMPCR_TAMP3E | RTC_TAMPCR_TAMP2E | RTC_TAMPCR_TAMP1E)) 1185 #define RTC_TAMPCR_TAMPXIE ((uint32_t) (RTC_TAMPER1_INTERRUPT | RTC_TAMPER2_INTERRUPT | \ 1186 RTC_TAMPER3_INTERRUPT | RTC_ALL_TAMPER_INTERRUPT)) 1187 1188 #else 1189 1190 #define RTC_FLAGS_MASK ((uint32_t) (RTC_FLAG_RECALPF | RTC_FLAG_TAMP2F | \ 1191 RTC_FLAG_TSOVF | RTC_FLAG_TSF | RTC_FLAG_WUTF | \ 1192 RTC_FLAG_ALRBF | RTC_FLAG_ALRAF | \ 1193 RTC_FLAG_INITF | RTC_FLAG_RSF | RTC_FLAG_INITS | \ 1194 RTC_FLAG_SHPF | RTC_FLAG_WUTWF |RTC_FLAG_ALRBWF | \ 1195 RTC_FLAG_ALRAWF)) 1196 1197 #define RTC_TAMPCR_TAMPXE ((uint32_t) (RTC_TAMPCR_TAMP2E)) 1198 #define RTC_TAMPCR_TAMPXIE ((uint32_t) (RTC_TAMPER2_INTERRUPT | RTC_ALL_TAMPER_INTERRUPT)) 1199 1200 #endif 1201 1202 #define RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT (EXTI_IMR1_IM18) /*!< External interrupt line 18 Connected to the RTC Tamper and Time Stamp events */ 1203 #define RTC_EXTI_LINE_WAKEUPTIMER_EVENT (EXTI_IMR1_IM19) /*!< External interrupt line 19 Connected to the RTC Wakeup event */ 1204 1205 /** 1206 * @} 1207 */ 1208 1209 /* Private macros ------------------------------------------------------------*/ 1210 /** @defgroup RTCEx_Private_Macros RTCEx Private Macros 1211 * @{ 1212 */ 1213 1214 /** @defgroup RTCEx_IS_RTC_Definitions Private macros to check input parameters 1215 * @{ 1216 */ 1217 1218 #define IS_RTC_OUTPUT(OUTPUT) (((OUTPUT) == RTC_OUTPUT_DISABLE) || \ 1219 ((OUTPUT) == RTC_OUTPUT_ALARMA) || \ 1220 ((OUTPUT) == RTC_OUTPUT_ALARMB) || \ 1221 ((OUTPUT) == RTC_OUTPUT_WAKEUP)) 1222 1223 #define IS_RTC_BKP(BKP) ((BKP) < (uint32_t) RTC_BKP_NUMBER) 1224 1225 #define IS_TIMESTAMP_EDGE(EDGE) (((EDGE) == RTC_TIMESTAMPEDGE_RISING) || \ 1226 ((EDGE) == RTC_TIMESTAMPEDGE_FALLING)) 1227 1228 #define IS_RTC_TAMPER(TAMPER) ((((TAMPER) & ((uint32_t)(0xFFFFFFFFU ^ RTC_TAMPCR_TAMPXE))) == 0x00U) && ((TAMPER) != 0U)) 1229 1230 #define IS_RTC_TAMPER_INTERRUPT(INTERRUPT) ((((INTERRUPT) & (uint32_t)(0xFFFFFFFFU ^ RTC_TAMPCR_TAMPXIE)) == 0x00U) && ((INTERRUPT) != 0U)) 1231 1232 #define IS_RTC_TIMESTAMP_PIN(PIN) (((PIN) == RTC_TIMESTAMPPIN_DEFAULT)) 1233 1234 #define IS_RTC_TAMPER_TRIGGER(TRIGGER) (((TRIGGER) == RTC_TAMPERTRIGGER_RISINGEDGE) || \ 1235 ((TRIGGER) == RTC_TAMPERTRIGGER_FALLINGEDGE) || \ 1236 ((TRIGGER) == RTC_TAMPERTRIGGER_LOWLEVEL) || \ 1237 ((TRIGGER) == RTC_TAMPERTRIGGER_HIGHLEVEL)) 1238 1239 #define IS_RTC_TAMPER_ERASE_MODE(MODE) (((MODE) == RTC_TAMPER_ERASE_BACKUP_ENABLE) || \ 1240 ((MODE) == RTC_TAMPER_ERASE_BACKUP_DISABLE)) 1241 1242 #define IS_RTC_TAMPER_MASKFLAG_STATE(STATE) (((STATE) == RTC_TAMPERMASK_FLAG_ENABLE) || \ 1243 ((STATE) == RTC_TAMPERMASK_FLAG_DISABLE)) 1244 1245 #define IS_RTC_TAMPER_FILTER(FILTER) (((FILTER) == RTC_TAMPERFILTER_DISABLE) || \ 1246 ((FILTER) == RTC_TAMPERFILTER_2SAMPLE) || \ 1247 ((FILTER) == RTC_TAMPERFILTER_4SAMPLE) || \ 1248 ((FILTER) == RTC_TAMPERFILTER_8SAMPLE)) 1249 1250 #define IS_RTC_TAMPER_SAMPLING_FREQ(FREQ) (((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768)|| \ 1251 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384)|| \ 1252 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192) || \ 1253 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096) || \ 1254 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048) || \ 1255 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024) || \ 1256 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512) || \ 1257 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256)) 1258 1259 #define IS_RTC_TAMPER_PRECHARGE_DURATION(DURATION) (((DURATION) == RTC_TAMPERPRECHARGEDURATION_1RTCCLK) || \ 1260 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_2RTCCLK) || \ 1261 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_4RTCCLK) || \ 1262 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_8RTCCLK)) 1263 1264 #define IS_RTC_TAMPER_TIMESTAMPONTAMPER_DETECTION(DETECTION) (((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_ENABLE) || \ 1265 ((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_DISABLE)) 1266 1267 #define IS_RTC_TAMPER_PULLUP_STATE(STATE) (((STATE) == RTC_TAMPER_PULLUP_ENABLE) || \ 1268 ((STATE) == RTC_TAMPER_PULLUP_DISABLE)) 1269 1270 #define IS_RTC_WAKEUP_CLOCK(CLOCK) (((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV16) || \ 1271 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV8) || \ 1272 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV4) || \ 1273 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV2) || \ 1274 ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_16BITS) || \ 1275 ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_17BITS)) 1276 1277 #define IS_RTC_WAKEUP_COUNTER(COUNTER) ((COUNTER) <= RTC_WUTR_WUT) 1278 1279 #define IS_RTC_SMOOTH_CALIB_PERIOD(PERIOD) (((PERIOD) == RTC_SMOOTHCALIB_PERIOD_32SEC) || \ 1280 ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_16SEC) || \ 1281 ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_8SEC)) 1282 1283 #define IS_RTC_SMOOTH_CALIB_PLUS(PLUS) (((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_SET) || \ 1284 ((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_RESET)) 1285 1286 1287 /** @defgroup RTCEx_Smooth_calib_Minus_pulses_Definitions RTCEx Smooth calib Minus pulses Definitions 1288 * @{ 1289 */ 1290 #define IS_RTC_SMOOTH_CALIB_MINUS(VALUE) ((VALUE) <= RTC_CALR_CALM) 1291 /** 1292 * @} 1293 */ 1294 1295 1296 #define IS_RTC_SHIFT_ADD1S(SEL) (((SEL) == RTC_SHIFTADD1S_RESET) || \ 1297 ((SEL) == RTC_SHIFTADD1S_SET)) 1298 1299 1300 1301 /** @defgroup RTCEx_Substract_Fraction_Of_Second_Value RTCEx Substract Fraction Of Second Value 1302 * @{ 1303 */ 1304 #define IS_RTC_SHIFT_SUBFS(FS) ((FS) <= RTC_SHIFTR_SUBFS) 1305 /** 1306 * @} 1307 */ 1308 #define IS_RTC_CALIB_OUTPUT(OUTPUT) (((OUTPUT) == RTC_CALIBOUTPUT_512HZ) || \ 1309 ((OUTPUT) == RTC_CALIBOUTPUT_1HZ)) 1310 1311 /** 1312 * @} 1313 */ 1314 1315 /** 1316 * @} 1317 */ 1318 1319 1320 1321 /** 1322 * @} 1323 */ 1324 1325 /** 1326 * @} 1327 */ 1328 1329 #ifdef __cplusplus 1330 } 1331 #endif 1332 1333 #endif /* STM32WBxx_HAL_RTC_EX_H */ 1334 1335 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 1336