mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

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

Committer:
mbed_official
Date:
Mon Sep 28 14:00:11 2015 +0100
Revision:
632:7687fb9c4f91
Parent:
385:be64abf45658
Child:
634:ac7d6880524d
Synchronized with git revision f7ce4ed029cc611121464252ff28d5e8beb895b0

Full URL: https://github.com/mbedmicro/mbed/commit/f7ce4ed029cc611121464252ff28d5e8beb895b0/

NUCLEO_F303K8 - add support of the STM32F303K8

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 330:c80ac197fa6a 1 /**
mbed_official 330:c80ac197fa6a 2 ******************************************************************************
mbed_official 330:c80ac197fa6a 3 * @file stm32f3xx_hal_rtc_ex.h
mbed_official 330:c80ac197fa6a 4 * @author MCD Application Team
mbed_official 632:7687fb9c4f91 5 * @version V1.1.1
mbed_official 632:7687fb9c4f91 6 * @date 19-June-2015
mbed_official 330:c80ac197fa6a 7 * @brief Header file of RTC HAL Extended module.
mbed_official 330:c80ac197fa6a 8 ******************************************************************************
mbed_official 330:c80ac197fa6a 9 * @attention
mbed_official 330:c80ac197fa6a 10 *
mbed_official 632:7687fb9c4f91 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 330:c80ac197fa6a 12 *
mbed_official 330:c80ac197fa6a 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 330:c80ac197fa6a 14 * are permitted provided that the following conditions are met:
mbed_official 330:c80ac197fa6a 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 330:c80ac197fa6a 16 * this list of conditions and the following disclaimer.
mbed_official 330:c80ac197fa6a 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 330:c80ac197fa6a 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 330:c80ac197fa6a 19 * and/or other materials provided with the distribution.
mbed_official 330:c80ac197fa6a 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 330:c80ac197fa6a 21 * may be used to endorse or promote products derived from this software
mbed_official 330:c80ac197fa6a 22 * without specific prior written permission.
mbed_official 330:c80ac197fa6a 23 *
mbed_official 330:c80ac197fa6a 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 330:c80ac197fa6a 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 330:c80ac197fa6a 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 330:c80ac197fa6a 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 330:c80ac197fa6a 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 330:c80ac197fa6a 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 330:c80ac197fa6a 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 330:c80ac197fa6a 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 330:c80ac197fa6a 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 330:c80ac197fa6a 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 330:c80ac197fa6a 34 *
mbed_official 330:c80ac197fa6a 35 ******************************************************************************
mbed_official 330:c80ac197fa6a 36 */
mbed_official 330:c80ac197fa6a 37
mbed_official 330:c80ac197fa6a 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 330:c80ac197fa6a 39 #ifndef __STM32F3xx_HAL_RTC_EX_H
mbed_official 330:c80ac197fa6a 40 #define __STM32F3xx_HAL_RTC_EX_H
mbed_official 330:c80ac197fa6a 41
mbed_official 330:c80ac197fa6a 42 #ifdef __cplusplus
mbed_official 330:c80ac197fa6a 43 extern "C" {
mbed_official 330:c80ac197fa6a 44 #endif
mbed_official 330:c80ac197fa6a 45
mbed_official 330:c80ac197fa6a 46 /* Includes ------------------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 47 #include "stm32f3xx_hal_def.h"
mbed_official 330:c80ac197fa6a 48
mbed_official 330:c80ac197fa6a 49 /** @addtogroup STM32F3xx_HAL_Driver
mbed_official 330:c80ac197fa6a 50 * @{
mbed_official 330:c80ac197fa6a 51 */
mbed_official 330:c80ac197fa6a 52
mbed_official 330:c80ac197fa6a 53 /** @addtogroup RTCEx RTC Extended HAL module driver
mbed_official 330:c80ac197fa6a 54 * @{
mbed_official 330:c80ac197fa6a 55 */
mbed_official 330:c80ac197fa6a 56
mbed_official 330:c80ac197fa6a 57 /* Exported types ------------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 58
mbed_official 330:c80ac197fa6a 59 /** @defgroup RTCEx_Exported_Types RTC Extended Exported Types
mbed_official 330:c80ac197fa6a 60 * @{
mbed_official 330:c80ac197fa6a 61 */
mbed_official 330:c80ac197fa6a 62
mbed_official 330:c80ac197fa6a 63 /**
mbed_official 330:c80ac197fa6a 64 * @brief RTC Tamper structure definition
mbed_official 330:c80ac197fa6a 65 */
mbed_official 330:c80ac197fa6a 66 typedef struct
mbed_official 330:c80ac197fa6a 67 {
mbed_official 330:c80ac197fa6a 68 uint32_t Tamper; /*!< Specifies the Tamper Pin.
mbed_official 330:c80ac197fa6a 69 This parameter can be a value of @ref RTCEx_Tamper_Pins_Definitions */
mbed_official 330:c80ac197fa6a 70
mbed_official 330:c80ac197fa6a 71 uint32_t Trigger; /*!< Specifies the Tamper Trigger.
mbed_official 330:c80ac197fa6a 72 This parameter can be a value of @ref RTCEx_Tamper_Trigger_Definitions */
mbed_official 330:c80ac197fa6a 73
mbed_official 330:c80ac197fa6a 74 uint32_t Filter; /*!< Specifies the RTC Filter Tamper.
mbed_official 330:c80ac197fa6a 75 This parameter can be a value of @ref RTCEx_Tamper_Filter_Definitions */
mbed_official 330:c80ac197fa6a 76
mbed_official 330:c80ac197fa6a 77 uint32_t SamplingFrequency; /*!< Specifies the sampling frequency.
mbed_official 330:c80ac197fa6a 78 This parameter can be a value of @ref RTCEx_Tamper_Sampling_Frequencies_Definitions */
mbed_official 330:c80ac197fa6a 79
mbed_official 330:c80ac197fa6a 80 uint32_t PrechargeDuration; /*!< Specifies the Precharge Duration .
mbed_official 330:c80ac197fa6a 81 This parameter can be a value of @ref RTCEx_Tamper_Pin_Precharge_Duration_Definitions */
mbed_official 330:c80ac197fa6a 82
mbed_official 330:c80ac197fa6a 83 uint32_t TamperPullUp; /*!< Specifies the Tamper PullUp .
mbed_official 330:c80ac197fa6a 84 This parameter can be a value of @ref RTCEx_Tamper_Pull_UP_Definitions */
mbed_official 330:c80ac197fa6a 85
mbed_official 330:c80ac197fa6a 86 uint32_t TimeStampOnTamperDetection; /*!< Specifies the TimeStampOnTamperDetection.
mbed_official 330:c80ac197fa6a 87 This parameter can be a value of @ref RTCEx_Tamper_TimeStampOnTamperDetection_Definitions */
mbed_official 330:c80ac197fa6a 88 }RTC_TamperTypeDef;
mbed_official 330:c80ac197fa6a 89 /**
mbed_official 330:c80ac197fa6a 90 * @}
mbed_official 330:c80ac197fa6a 91 */
mbed_official 330:c80ac197fa6a 92
mbed_official 330:c80ac197fa6a 93 /* Exported constants --------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 94 /** @defgroup RTCEx_Exported_Constants RTC Extended Exported Constants
mbed_official 330:c80ac197fa6a 95 * @{
mbed_official 330:c80ac197fa6a 96 */
mbed_official 330:c80ac197fa6a 97
mbed_official 330:c80ac197fa6a 98 /** @defgroup RTCEx_Output_selection_Definitions RTC Extended Output Selection Definition
mbed_official 330:c80ac197fa6a 99 * @{
mbed_official 330:c80ac197fa6a 100 */
mbed_official 330:c80ac197fa6a 101 #define RTC_OUTPUT_DISABLE ((uint32_t)0x00000000)
mbed_official 330:c80ac197fa6a 102 #define RTC_OUTPUT_ALARMA ((uint32_t)0x00200000)
mbed_official 330:c80ac197fa6a 103 #define RTC_OUTPUT_ALARMB ((uint32_t)0x00400000)
mbed_official 330:c80ac197fa6a 104 #define RTC_OUTPUT_WAKEUP ((uint32_t)0x00600000)
mbed_official 330:c80ac197fa6a 105
mbed_official 330:c80ac197fa6a 106 #define IS_RTC_OUTPUT(OUTPUT) (((OUTPUT) == RTC_OUTPUT_DISABLE) || \
mbed_official 330:c80ac197fa6a 107 ((OUTPUT) == RTC_OUTPUT_ALARMA) || \
mbed_official 330:c80ac197fa6a 108 ((OUTPUT) == RTC_OUTPUT_ALARMB) || \
mbed_official 330:c80ac197fa6a 109 ((OUTPUT) == RTC_OUTPUT_WAKEUP))
mbed_official 330:c80ac197fa6a 110 /**
mbed_official 330:c80ac197fa6a 111 * @}
mbed_official 330:c80ac197fa6a 112 */
mbed_official 330:c80ac197fa6a 113
mbed_official 330:c80ac197fa6a 114 /** @defgroup RTCEx_Backup_Registers_Definitions RTC Extended Backup Registers Definition
mbed_official 330:c80ac197fa6a 115 * @{
mbed_official 330:c80ac197fa6a 116 */
mbed_official 330:c80ac197fa6a 117 #define RTC_BKP_DR0 ((uint32_t)0x00000000)
mbed_official 330:c80ac197fa6a 118 #define RTC_BKP_DR1 ((uint32_t)0x00000001)
mbed_official 330:c80ac197fa6a 119 #define RTC_BKP_DR2 ((uint32_t)0x00000002)
mbed_official 330:c80ac197fa6a 120 #define RTC_BKP_DR3 ((uint32_t)0x00000003)
mbed_official 330:c80ac197fa6a 121 #define RTC_BKP_DR4 ((uint32_t)0x00000004)
mbed_official 330:c80ac197fa6a 122 #define RTC_BKP_DR5 ((uint32_t)0x00000005)
mbed_official 330:c80ac197fa6a 123 #define RTC_BKP_DR6 ((uint32_t)0x00000006)
mbed_official 330:c80ac197fa6a 124 #define RTC_BKP_DR7 ((uint32_t)0x00000007)
mbed_official 330:c80ac197fa6a 125 #define RTC_BKP_DR8 ((uint32_t)0x00000008)
mbed_official 330:c80ac197fa6a 126 #define RTC_BKP_DR9 ((uint32_t)0x00000009)
mbed_official 330:c80ac197fa6a 127 #define RTC_BKP_DR10 ((uint32_t)0x0000000A)
mbed_official 330:c80ac197fa6a 128 #define RTC_BKP_DR11 ((uint32_t)0x0000000B)
mbed_official 330:c80ac197fa6a 129 #define RTC_BKP_DR12 ((uint32_t)0x0000000C)
mbed_official 330:c80ac197fa6a 130 #define RTC_BKP_DR13 ((uint32_t)0x0000000D)
mbed_official 330:c80ac197fa6a 131 #define RTC_BKP_DR14 ((uint32_t)0x0000000E)
mbed_official 330:c80ac197fa6a 132 #define RTC_BKP_DR15 ((uint32_t)0x0000000F)
mbed_official 330:c80ac197fa6a 133 #if defined(STM32F373xC) || defined(STM32F378xx)
mbed_official 330:c80ac197fa6a 134 #define RTC_BKP_DR16 ((uint32_t)0x00000010)
mbed_official 330:c80ac197fa6a 135 #define RTC_BKP_DR17 ((uint32_t)0x00000011)
mbed_official 330:c80ac197fa6a 136 #define RTC_BKP_DR18 ((uint32_t)0x00000012)
mbed_official 330:c80ac197fa6a 137 #define RTC_BKP_DR19 ((uint32_t)0x00000013)
mbed_official 330:c80ac197fa6a 138 #define RTC_BKP_DR20 ((uint32_t)0x00000014)
mbed_official 330:c80ac197fa6a 139 #define RTC_BKP_DR21 ((uint32_t)0x00000015)
mbed_official 330:c80ac197fa6a 140 #define RTC_BKP_DR22 ((uint32_t)0x00000016)
mbed_official 330:c80ac197fa6a 141 #define RTC_BKP_DR23 ((uint32_t)0x00000017)
mbed_official 330:c80ac197fa6a 142 #define RTC_BKP_DR24 ((uint32_t)0x00000018)
mbed_official 330:c80ac197fa6a 143 #define RTC_BKP_DR25 ((uint32_t)0x00000019)
mbed_official 330:c80ac197fa6a 144 #define RTC_BKP_DR26 ((uint32_t)0x0000001A)
mbed_official 330:c80ac197fa6a 145 #define RTC_BKP_DR27 ((uint32_t)0x0000001B)
mbed_official 330:c80ac197fa6a 146 #define RTC_BKP_DR28 ((uint32_t)0x0000001C)
mbed_official 330:c80ac197fa6a 147 #define RTC_BKP_DR29 ((uint32_t)0x0000001D)
mbed_official 330:c80ac197fa6a 148 #define RTC_BKP_DR30 ((uint32_t)0x0000001E)
mbed_official 330:c80ac197fa6a 149 #define RTC_BKP_DR31 ((uint32_t)0x0000001F)
mbed_official 330:c80ac197fa6a 150 #endif /* STM32F373xC || STM32F378xx */
mbed_official 330:c80ac197fa6a 151
mbed_official 330:c80ac197fa6a 152 #define IS_RTC_BKP(BKP) ((BKP) < (uint32_t) RTC_BKP_NUMBER)
mbed_official 330:c80ac197fa6a 153 /**
mbed_official 330:c80ac197fa6a 154 * @}
mbed_official 330:c80ac197fa6a 155 */
mbed_official 330:c80ac197fa6a 156
mbed_official 330:c80ac197fa6a 157 /** @defgroup RTCEx_Time_Stamp_Edges_definitions RTC Extended Time Stamp Edges definition
mbed_official 330:c80ac197fa6a 158 * @{
mbed_official 330:c80ac197fa6a 159 */
mbed_official 330:c80ac197fa6a 160 #define RTC_TIMESTAMPEDGE_RISING ((uint32_t)0x00000000)
mbed_official 330:c80ac197fa6a 161 #define RTC_TIMESTAMPEDGE_FALLING ((uint32_t)0x00000008)
mbed_official 330:c80ac197fa6a 162
mbed_official 330:c80ac197fa6a 163 #define IS_TIMESTAMP_EDGE(EDGE) (((EDGE) == RTC_TIMESTAMPEDGE_RISING) || \
mbed_official 330:c80ac197fa6a 164 ((EDGE) == RTC_TIMESTAMPEDGE_FALLING))
mbed_official 330:c80ac197fa6a 165 /**
mbed_official 330:c80ac197fa6a 166 * @}
mbed_official 330:c80ac197fa6a 167 */
mbed_official 330:c80ac197fa6a 168
mbed_official 330:c80ac197fa6a 169 /** @defgroup RTCEx_Tamper_Pins_Definitions RTC Extended Tamper Pins Definition
mbed_official 330:c80ac197fa6a 170 * @{
mbed_official 330:c80ac197fa6a 171 */
mbed_official 330:c80ac197fa6a 172 #define RTC_TAMPER_1 RTC_TAFCR_TAMP1E
mbed_official 330:c80ac197fa6a 173 #define RTC_TAMPER_2 RTC_TAFCR_TAMP2E
mbed_official 330:c80ac197fa6a 174 #define RTC_TAMPER_3 RTC_TAFCR_TAMP3E
mbed_official 330:c80ac197fa6a 175
mbed_official 330:c80ac197fa6a 176 #define IS_TAMPER(TAMPER) (((TAMPER) == RTC_TAMPER_1) || \
mbed_official 330:c80ac197fa6a 177 ((TAMPER) == RTC_TAMPER_2) || \
mbed_official 330:c80ac197fa6a 178 ((TAMPER) == RTC_TAMPER_3))
mbed_official 330:c80ac197fa6a 179 /**
mbed_official 330:c80ac197fa6a 180 * @}
mbed_official 330:c80ac197fa6a 181 */
mbed_official 330:c80ac197fa6a 182
mbed_official 330:c80ac197fa6a 183 /** @defgroup RTCEx_TimeStamp_Pin_Selections RTC Extended TimeStamp Pin Selection
mbed_official 330:c80ac197fa6a 184 * @{
mbed_official 330:c80ac197fa6a 185 */
mbed_official 330:c80ac197fa6a 186 #define RTC_TIMESTAMPPIN_PC13 ((uint32_t)0x00000000)
mbed_official 330:c80ac197fa6a 187
mbed_official 330:c80ac197fa6a 188 #define IS_RTC_TIMESTAMP_PIN(PIN) (((PIN) == RTC_TIMESTAMPPIN_PC13))
mbed_official 330:c80ac197fa6a 189 /**
mbed_official 330:c80ac197fa6a 190 * @}
mbed_official 330:c80ac197fa6a 191 */
mbed_official 330:c80ac197fa6a 192
mbed_official 330:c80ac197fa6a 193 /** @defgroup RTCEx_Tamper_Trigger_Definitions RTC Extended Tamper Trigger Definition
mbed_official 330:c80ac197fa6a 194 * @{
mbed_official 330:c80ac197fa6a 195 */
mbed_official 330:c80ac197fa6a 196 #define RTC_TAMPERTRIGGER_RISINGEDGE ((uint32_t)0x00000000)
mbed_official 330:c80ac197fa6a 197 #define RTC_TAMPERTRIGGER_FALLINGEDGE ((uint32_t)0x00000002)
mbed_official 330:c80ac197fa6a 198 #define RTC_TAMPERTRIGGER_LOWLEVEL RTC_TAMPERTRIGGER_RISINGEDGE
mbed_official 330:c80ac197fa6a 199 #define RTC_TAMPERTRIGGER_HIGHLEVEL RTC_TAMPERTRIGGER_FALLINGEDGE
mbed_official 330:c80ac197fa6a 200
mbed_official 330:c80ac197fa6a 201 #define IS_TAMPER_TRIGGER(TRIGGER) (((TRIGGER) == RTC_TAMPERTRIGGER_RISINGEDGE) || \
mbed_official 330:c80ac197fa6a 202 ((TRIGGER) == RTC_TAMPERTRIGGER_FALLINGEDGE) || \
mbed_official 330:c80ac197fa6a 203 ((TRIGGER) == RTC_TAMPERTRIGGER_LOWLEVEL) || \
mbed_official 330:c80ac197fa6a 204 ((TRIGGER) == RTC_TAMPERTRIGGER_HIGHLEVEL))
mbed_official 330:c80ac197fa6a 205
mbed_official 330:c80ac197fa6a 206 /**
mbed_official 330:c80ac197fa6a 207 * @}
mbed_official 330:c80ac197fa6a 208 */
mbed_official 330:c80ac197fa6a 209
mbed_official 330:c80ac197fa6a 210 /** @defgroup RTCEx_Tamper_Filter_Definitions RTC Extended Tamper Filter Definition
mbed_official 330:c80ac197fa6a 211 * @{
mbed_official 330:c80ac197fa6a 212 */
mbed_official 330:c80ac197fa6a 213 #define RTC_TAMPERFILTER_DISABLE ((uint32_t)0x00000000) /*!< Tamper filter is disabled */
mbed_official 330:c80ac197fa6a 214
mbed_official 330:c80ac197fa6a 215 #define RTC_TAMPERFILTER_2SAMPLE ((uint32_t)0x00000800) /*!< Tamper is activated after 2
mbed_official 330:c80ac197fa6a 216 consecutive samples at the active level */
mbed_official 330:c80ac197fa6a 217 #define RTC_TAMPERFILTER_4SAMPLE ((uint32_t)0x00001000) /*!< Tamper is activated after 4
mbed_official 330:c80ac197fa6a 218 consecutive samples at the active level */
mbed_official 330:c80ac197fa6a 219 #define RTC_TAMPERFILTER_8SAMPLE ((uint32_t)0x00001800) /*!< Tamper is activated after 8
mbed_official 330:c80ac197fa6a 220 consecutive samples at the active level. */
mbed_official 330:c80ac197fa6a 221
mbed_official 330:c80ac197fa6a 222 #define IS_TAMPER_FILTER(FILTER) (((FILTER) == RTC_TAMPERFILTER_DISABLE) || \
mbed_official 330:c80ac197fa6a 223 ((FILTER) == RTC_TAMPERFILTER_2SAMPLE) || \
mbed_official 330:c80ac197fa6a 224 ((FILTER) == RTC_TAMPERFILTER_4SAMPLE) || \
mbed_official 330:c80ac197fa6a 225 ((FILTER) == RTC_TAMPERFILTER_8SAMPLE))
mbed_official 330:c80ac197fa6a 226 /**
mbed_official 330:c80ac197fa6a 227 * @}
mbed_official 330:c80ac197fa6a 228 */
mbed_official 330:c80ac197fa6a 229
mbed_official 330:c80ac197fa6a 230 /** @defgroup RTCEx_Tamper_Sampling_Frequencies_Definitions RTC Extended Tamper Sampling Frequencies Definition
mbed_official 330:c80ac197fa6a 231 * @{
mbed_official 330:c80ac197fa6a 232 */
mbed_official 330:c80ac197fa6a 233 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768 ((uint32_t)0x00000000) /*!< Each of the tamper inputs are sampled
mbed_official 330:c80ac197fa6a 234 with a frequency = RTCCLK / 32768 */
mbed_official 330:c80ac197fa6a 235 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384 ((uint32_t)0x00000100) /*!< Each of the tamper inputs are sampled
mbed_official 330:c80ac197fa6a 236 with a frequency = RTCCLK / 16384 */
mbed_official 330:c80ac197fa6a 237 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192 ((uint32_t)0x00000200) /*!< Each of the tamper inputs are sampled
mbed_official 330:c80ac197fa6a 238 with a frequency = RTCCLK / 8192 */
mbed_official 330:c80ac197fa6a 239 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096 ((uint32_t)0x00000300) /*!< Each of the tamper inputs are sampled
mbed_official 330:c80ac197fa6a 240 with a frequency = RTCCLK / 4096 */
mbed_official 330:c80ac197fa6a 241 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048 ((uint32_t)0x00000400) /*!< Each of the tamper inputs are sampled
mbed_official 330:c80ac197fa6a 242 with a frequency = RTCCLK / 2048 */
mbed_official 330:c80ac197fa6a 243 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024 ((uint32_t)0x00000500) /*!< Each of the tamper inputs are sampled
mbed_official 330:c80ac197fa6a 244 with a frequency = RTCCLK / 1024 */
mbed_official 330:c80ac197fa6a 245 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512 ((uint32_t)0x00000600) /*!< Each of the tamper inputs are sampled
mbed_official 330:c80ac197fa6a 246 with a frequency = RTCCLK / 512 */
mbed_official 330:c80ac197fa6a 247 #define RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256 ((uint32_t)0x00000700) /*!< Each of the tamper inputs are sampled
mbed_official 330:c80ac197fa6a 248 with a frequency = RTCCLK / 256 */
mbed_official 330:c80ac197fa6a 249
mbed_official 330:c80ac197fa6a 250 #define IS_TAMPER_SAMPLING_FREQ(FREQ) (((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV32768)|| \
mbed_official 330:c80ac197fa6a 251 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV16384)|| \
mbed_official 330:c80ac197fa6a 252 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV8192) || \
mbed_official 330:c80ac197fa6a 253 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV4096) || \
mbed_official 330:c80ac197fa6a 254 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV2048) || \
mbed_official 330:c80ac197fa6a 255 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV1024) || \
mbed_official 330:c80ac197fa6a 256 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV512) || \
mbed_official 330:c80ac197fa6a 257 ((FREQ) == RTC_TAMPERSAMPLINGFREQ_RTCCLK_DIV256))
mbed_official 330:c80ac197fa6a 258 /**
mbed_official 330:c80ac197fa6a 259 * @}
mbed_official 330:c80ac197fa6a 260 */
mbed_official 330:c80ac197fa6a 261
mbed_official 330:c80ac197fa6a 262 /** @defgroup RTCEx_Tamper_Pin_Precharge_Duration_Definitions RTC Extended Tamper Pin Precharge Duration Definition
mbed_official 330:c80ac197fa6a 263 * @{
mbed_official 330:c80ac197fa6a 264 */
mbed_official 330:c80ac197fa6a 265 #define RTC_TAMPERPRECHARGEDURATION_1RTCCLK ((uint32_t)0x00000000) /*!< Tamper pins are pre-charged before
mbed_official 330:c80ac197fa6a 266 sampling during 1 RTCCLK cycle */
mbed_official 330:c80ac197fa6a 267 #define RTC_TAMPERPRECHARGEDURATION_2RTCCLK ((uint32_t)0x00002000) /*!< Tamper pins are pre-charged before
mbed_official 330:c80ac197fa6a 268 sampling during 2 RTCCLK cycles */
mbed_official 330:c80ac197fa6a 269 #define RTC_TAMPERPRECHARGEDURATION_4RTCCLK ((uint32_t)0x00004000) /*!< Tamper pins are pre-charged before
mbed_official 330:c80ac197fa6a 270 sampling during 4 RTCCLK cycles */
mbed_official 330:c80ac197fa6a 271 #define RTC_TAMPERPRECHARGEDURATION_8RTCCLK ((uint32_t)0x00006000) /*!< Tamper pins are pre-charged before
mbed_official 330:c80ac197fa6a 272 sampling during 8 RTCCLK cycles */
mbed_official 330:c80ac197fa6a 273
mbed_official 330:c80ac197fa6a 274 #define IS_TAMPER_PRECHARGE_DURATION(DURATION) (((DURATION) == RTC_TAMPERPRECHARGEDURATION_1RTCCLK) || \
mbed_official 330:c80ac197fa6a 275 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_2RTCCLK) || \
mbed_official 330:c80ac197fa6a 276 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_4RTCCLK) || \
mbed_official 330:c80ac197fa6a 277 ((DURATION) == RTC_TAMPERPRECHARGEDURATION_8RTCCLK))
mbed_official 330:c80ac197fa6a 278 /**
mbed_official 330:c80ac197fa6a 279 * @}
mbed_official 330:c80ac197fa6a 280 */
mbed_official 330:c80ac197fa6a 281
mbed_official 330:c80ac197fa6a 282 /** @defgroup RTCEx_Tamper_TimeStampOnTamperDetection_Definitions RTC Extended Tamper TimeStampOnTamperDetection Definition
mbed_official 330:c80ac197fa6a 283 * @{
mbed_official 330:c80ac197fa6a 284 */
mbed_official 330:c80ac197fa6a 285 #define RTC_TIMESTAMPONTAMPERDETECTION_ENABLE ((uint32_t)RTC_TAFCR_TAMPTS) /*!< TimeStamp on Tamper Detection event saved */
mbed_official 330:c80ac197fa6a 286 #define RTC_TIMESTAMPONTAMPERDETECTION_DISABLE ((uint32_t)0x00000000) /*!< TimeStamp on Tamper Detection event is not saved */
mbed_official 330:c80ac197fa6a 287
mbed_official 330:c80ac197fa6a 288 #define IS_TAMPER_TIMESTAMPONTAMPER_DETECTION(DETECTION) (((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_ENABLE) || \
mbed_official 330:c80ac197fa6a 289 ((DETECTION) == RTC_TIMESTAMPONTAMPERDETECTION_DISABLE))
mbed_official 330:c80ac197fa6a 290 /**
mbed_official 330:c80ac197fa6a 291 * @}
mbed_official 330:c80ac197fa6a 292 */
mbed_official 330:c80ac197fa6a 293
mbed_official 330:c80ac197fa6a 294 /** @defgroup RTCEx_Tamper_Pull_UP_Definitions RTC Extended Tamper Pull UP Definition
mbed_official 330:c80ac197fa6a 295 * @{
mbed_official 330:c80ac197fa6a 296 */
mbed_official 330:c80ac197fa6a 297 #define RTC_TAMPER_PULLUP_ENABLE ((uint32_t)0x00000000) /*!< TimeStamp on Tamper Detection event saved */
mbed_official 330:c80ac197fa6a 298 #define RTC_TAMPER_PULLUP_DISABLE ((uint32_t)RTC_TAFCR_TAMPPUDIS) /*!< TimeStamp on Tamper Detection event is not saved */
mbed_official 330:c80ac197fa6a 299
mbed_official 330:c80ac197fa6a 300 #define IS_TAMPER_PULLUP_STATE(STATE) (((STATE) == RTC_TAMPER_PULLUP_ENABLE) || \
mbed_official 330:c80ac197fa6a 301 ((STATE) == RTC_TAMPER_PULLUP_DISABLE))
mbed_official 330:c80ac197fa6a 302 /**
mbed_official 330:c80ac197fa6a 303 * @}
mbed_official 330:c80ac197fa6a 304 */
mbed_official 330:c80ac197fa6a 305
mbed_official 330:c80ac197fa6a 306 /** @defgroup RTCEx_Wakeup_Timer_Definitions RTC Extended Wakeup Timer Definition
mbed_official 330:c80ac197fa6a 307 * @{
mbed_official 330:c80ac197fa6a 308 */
mbed_official 330:c80ac197fa6a 309 #define RTC_WAKEUPCLOCK_RTCCLK_DIV16 ((uint32_t)0x00000000)
mbed_official 330:c80ac197fa6a 310 #define RTC_WAKEUPCLOCK_RTCCLK_DIV8 ((uint32_t)0x00000001)
mbed_official 330:c80ac197fa6a 311 #define RTC_WAKEUPCLOCK_RTCCLK_DIV4 ((uint32_t)0x00000002)
mbed_official 330:c80ac197fa6a 312 #define RTC_WAKEUPCLOCK_RTCCLK_DIV2 ((uint32_t)0x00000003)
mbed_official 330:c80ac197fa6a 313 #define RTC_WAKEUPCLOCK_CK_SPRE_16BITS ((uint32_t)0x00000004)
mbed_official 330:c80ac197fa6a 314 #define RTC_WAKEUPCLOCK_CK_SPRE_17BITS ((uint32_t)0x00000006)
mbed_official 330:c80ac197fa6a 315
mbed_official 330:c80ac197fa6a 316 #define IS_WAKEUP_CLOCK(CLOCK) (((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV16) || \
mbed_official 330:c80ac197fa6a 317 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV8) || \
mbed_official 330:c80ac197fa6a 318 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV4) || \
mbed_official 330:c80ac197fa6a 319 ((CLOCK) == RTC_WAKEUPCLOCK_RTCCLK_DIV2) || \
mbed_official 330:c80ac197fa6a 320 ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_16BITS) || \
mbed_official 330:c80ac197fa6a 321 ((CLOCK) == RTC_WAKEUPCLOCK_CK_SPRE_17BITS))
mbed_official 330:c80ac197fa6a 322
mbed_official 330:c80ac197fa6a 323 #define IS_WAKEUP_COUNTER(COUNTER) ((COUNTER) <= 0xFFFF)
mbed_official 330:c80ac197fa6a 324 /**
mbed_official 330:c80ac197fa6a 325 * @}
mbed_official 330:c80ac197fa6a 326 */
mbed_official 330:c80ac197fa6a 327
mbed_official 330:c80ac197fa6a 328 /** @defgroup RTCEx_Smooth_calib_period_Definitions RTC Extended Smooth calib period Definition
mbed_official 330:c80ac197fa6a 329 * @{
mbed_official 330:c80ac197fa6a 330 */
mbed_official 330:c80ac197fa6a 331 #define RTC_SMOOTHCALIB_PERIOD_32SEC ((uint32_t)0x00000000) /*!< If RTCCLK = 32768 Hz, Smooth calibation
mbed_official 330:c80ac197fa6a 332 period is 32s, else 2exp20 RTCCLK seconds */
mbed_official 330:c80ac197fa6a 333 #define RTC_SMOOTHCALIB_PERIOD_16SEC ((uint32_t)0x00002000) /*!< If RTCCLK = 32768 Hz, Smooth calibation
mbed_official 330:c80ac197fa6a 334 period is 16s, else 2exp19 RTCCLK seconds */
mbed_official 330:c80ac197fa6a 335 #define RTC_SMOOTHCALIB_PERIOD_8SEC ((uint32_t)0x00004000) /*!< If RTCCLK = 32768 Hz, Smooth calibation
mbed_official 330:c80ac197fa6a 336 period is 8s, else 2exp18 RTCCLK seconds */
mbed_official 330:c80ac197fa6a 337
mbed_official 330:c80ac197fa6a 338 #define IS_RTC_SMOOTH_CALIB_PERIOD(PERIOD) (((PERIOD) == RTC_SMOOTHCALIB_PERIOD_32SEC) || \
mbed_official 330:c80ac197fa6a 339 ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_16SEC) || \
mbed_official 330:c80ac197fa6a 340 ((PERIOD) == RTC_SMOOTHCALIB_PERIOD_8SEC))
mbed_official 330:c80ac197fa6a 341 /**
mbed_official 330:c80ac197fa6a 342 * @}
mbed_official 330:c80ac197fa6a 343 */
mbed_official 330:c80ac197fa6a 344
mbed_official 330:c80ac197fa6a 345 /** @defgroup RTCEx_Smooth_calib_Plus_pulses_Definitions RTC Extended Smooth calib Plus pulses Definition
mbed_official 330:c80ac197fa6a 346 * @{
mbed_official 330:c80ac197fa6a 347 */
mbed_official 330:c80ac197fa6a 348 #define RTC_SMOOTHCALIB_PLUSPULSES_SET ((uint32_t)0x00008000) /*!< The number of RTCCLK pulses added
mbed_official 330:c80ac197fa6a 349 during a X -second window = Y - CALM[8:0]
mbed_official 330:c80ac197fa6a 350 with Y = 512, 256, 128 when X = 32, 16, 8 */
mbed_official 330:c80ac197fa6a 351 #define RTC_SMOOTHCALIB_PLUSPULSES_RESET ((uint32_t)0x00000000) /*!< The number of RTCCLK pulses subbstited
mbed_official 330:c80ac197fa6a 352 during a 32-second window = CALM[8:0] */
mbed_official 330:c80ac197fa6a 353
mbed_official 330:c80ac197fa6a 354 #define IS_RTC_SMOOTH_CALIB_PLUS(PLUS) (((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_SET) || \
mbed_official 330:c80ac197fa6a 355 ((PLUS) == RTC_SMOOTHCALIB_PLUSPULSES_RESET))
mbed_official 330:c80ac197fa6a 356 /**
mbed_official 330:c80ac197fa6a 357 * @}
mbed_official 330:c80ac197fa6a 358 */
mbed_official 330:c80ac197fa6a 359
mbed_official 330:c80ac197fa6a 360 /** @defgroup RTCEx_Smooth_calib_Minus_pulses_Definitions RTC Extended Smooth calib Minus pulses Definition
mbed_official 330:c80ac197fa6a 361 * @{
mbed_official 330:c80ac197fa6a 362 */
mbed_official 330:c80ac197fa6a 363 #define IS_RTC_SMOOTH_CALIB_MINUS(VALUE) ((VALUE) <= 0x000001FF)
mbed_official 330:c80ac197fa6a 364 /**
mbed_official 330:c80ac197fa6a 365 * @}
mbed_official 330:c80ac197fa6a 366 */
mbed_official 330:c80ac197fa6a 367
mbed_official 330:c80ac197fa6a 368 /** @defgroup RTCEx_Add_1_Second_Parameter_Definition RTC Extended Add 1 Second Parameter Definition
mbed_official 330:c80ac197fa6a 369 * @{
mbed_official 330:c80ac197fa6a 370 */
mbed_official 330:c80ac197fa6a 371 #define RTC_SHIFTADD1S_RESET ((uint32_t)0x00000000)
mbed_official 330:c80ac197fa6a 372 #define RTC_SHIFTADD1S_SET ((uint32_t)0x80000000)
mbed_official 330:c80ac197fa6a 373
mbed_official 330:c80ac197fa6a 374 #define IS_RTC_SHIFT_ADD1S(SEL) (((SEL) == RTC_SHIFTADD1S_RESET) || \
mbed_official 330:c80ac197fa6a 375 ((SEL) == RTC_SHIFTADD1S_SET))
mbed_official 330:c80ac197fa6a 376 /**
mbed_official 330:c80ac197fa6a 377 * @}
mbed_official 330:c80ac197fa6a 378 */
mbed_official 330:c80ac197fa6a 379
mbed_official 330:c80ac197fa6a 380 /** @defgroup RTCEx_Substract_Fraction_Of_Second_Value RTC Extended Substract Fraction Of Second Value
mbed_official 330:c80ac197fa6a 381 * @{
mbed_official 330:c80ac197fa6a 382 */
mbed_official 330:c80ac197fa6a 383 #define IS_RTC_SHIFT_SUBFS(FS) ((FS) <= 0x00007FFF)
mbed_official 330:c80ac197fa6a 384 /**
mbed_official 330:c80ac197fa6a 385 * @}
mbed_official 330:c80ac197fa6a 386 */
mbed_official 330:c80ac197fa6a 387
mbed_official 330:c80ac197fa6a 388 /** @defgroup RTCEx_Calib_Output_selection_Definitions RTC Extended Calib Output selection Definition
mbed_official 330:c80ac197fa6a 389 * @{
mbed_official 330:c80ac197fa6a 390 */
mbed_official 330:c80ac197fa6a 391 #define RTC_CALIBOUTPUT_512HZ ((uint32_t)0x00000000)
mbed_official 330:c80ac197fa6a 392 #define RTC_CALIBOUTPUT_1HZ ((uint32_t)0x00080000)
mbed_official 330:c80ac197fa6a 393
mbed_official 330:c80ac197fa6a 394 #define IS_RTC_CALIB_OUTPUT(OUTPUT) (((OUTPUT) == RTC_CALIBOUTPUT_512HZ) || \
mbed_official 330:c80ac197fa6a 395 ((OUTPUT) == RTC_CALIBOUTPUT_1HZ))
mbed_official 330:c80ac197fa6a 396 /**
mbed_official 330:c80ac197fa6a 397 * @}
mbed_official 330:c80ac197fa6a 398 */
mbed_official 330:c80ac197fa6a 399
mbed_official 330:c80ac197fa6a 400 /**
mbed_official 330:c80ac197fa6a 401 * @}
mbed_official 330:c80ac197fa6a 402 */
mbed_official 330:c80ac197fa6a 403
mbed_official 330:c80ac197fa6a 404 /* Exported macro ------------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 405 /** @defgroup RTCEx_Exported_Macros RTC Extended Exported Macros
mbed_official 330:c80ac197fa6a 406 * @{
mbed_official 330:c80ac197fa6a 407 */
mbed_official 330:c80ac197fa6a 408
mbed_official 330:c80ac197fa6a 409 /**
mbed_official 330:c80ac197fa6a 410 * @brief Enable the RTC WakeUp Timer peripheral.
mbed_official 330:c80ac197fa6a 411 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 412 * @retval None
mbed_official 330:c80ac197fa6a 413 */
mbed_official 330:c80ac197fa6a 414 #define __HAL_RTC_WAKEUPTIMER_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_WUTE))
mbed_official 330:c80ac197fa6a 415
mbed_official 330:c80ac197fa6a 416 /**
mbed_official 330:c80ac197fa6a 417 * @brief Enable the RTC TimeStamp peripheral.
mbed_official 330:c80ac197fa6a 418 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 419 * @retval None
mbed_official 330:c80ac197fa6a 420 */
mbed_official 330:c80ac197fa6a 421 #define __HAL_RTC_TIMESTAMP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_TSE))
mbed_official 330:c80ac197fa6a 422
mbed_official 330:c80ac197fa6a 423 /**
mbed_official 330:c80ac197fa6a 424 * @brief Disable the RTC WakeUp Timer peripheral.
mbed_official 330:c80ac197fa6a 425 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 426 * @retval None
mbed_official 330:c80ac197fa6a 427 */
mbed_official 330:c80ac197fa6a 428 #define __HAL_RTC_WAKEUPTIMER_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_WUTE))
mbed_official 330:c80ac197fa6a 429
mbed_official 330:c80ac197fa6a 430 /**
mbed_official 330:c80ac197fa6a 431 * @brief Disable the RTC TimeStamp peripheral.
mbed_official 330:c80ac197fa6a 432 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 433 * @retval None
mbed_official 330:c80ac197fa6a 434 */
mbed_official 330:c80ac197fa6a 435 #define __HAL_RTC_TIMESTAMP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_TSE))
mbed_official 330:c80ac197fa6a 436
mbed_official 330:c80ac197fa6a 437 /**
mbed_official 330:c80ac197fa6a 438 * @brief Enable the RTC calibration output.
mbed_official 330:c80ac197fa6a 439 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 440 * @retval None
mbed_official 330:c80ac197fa6a 441 */
mbed_official 330:c80ac197fa6a 442 #define __HAL_RTC_CALIBRATION_OUTPUT_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_COE))
mbed_official 330:c80ac197fa6a 443
mbed_official 330:c80ac197fa6a 444 /**
mbed_official 330:c80ac197fa6a 445 * @brief Disable the calibration output.
mbed_official 330:c80ac197fa6a 446 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 447 * @retval None
mbed_official 330:c80ac197fa6a 448 */
mbed_official 330:c80ac197fa6a 449 #define __HAL_RTC_CALIBRATION_OUTPUT_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_COE))
mbed_official 330:c80ac197fa6a 450
mbed_official 330:c80ac197fa6a 451 /**
mbed_official 330:c80ac197fa6a 452 * @brief Enable the clock reference detection.
mbed_official 330:c80ac197fa6a 453 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 454 * @retval None
mbed_official 330:c80ac197fa6a 455 */
mbed_official 330:c80ac197fa6a 456 #define __HAL_RTC_CLOCKREF_DETECTION_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_REFCKON))
mbed_official 330:c80ac197fa6a 457
mbed_official 330:c80ac197fa6a 458 /**
mbed_official 330:c80ac197fa6a 459 * @brief Disable the clock reference detection.
mbed_official 330:c80ac197fa6a 460 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 461 * @retval None
mbed_official 330:c80ac197fa6a 462 */
mbed_official 330:c80ac197fa6a 463 #define __HAL_RTC_CLOCKREF_DETECTION_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_REFCKON))
mbed_official 330:c80ac197fa6a 464
mbed_official 330:c80ac197fa6a 465 /**
mbed_official 330:c80ac197fa6a 466 * @brief Enable the RTC TimeStamp interrupt.
mbed_official 330:c80ac197fa6a 467 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 468 * @param __INTERRUPT__: specifies the RTC TimeStamp interrupt sources to be enabled or disabled.
mbed_official 330:c80ac197fa6a 469 * This parameter can be:
mbed_official 330:c80ac197fa6a 470 * @arg RTC_IT_TS: TimeStamp interrupt
mbed_official 330:c80ac197fa6a 471 * @retval None
mbed_official 330:c80ac197fa6a 472 */
mbed_official 330:c80ac197fa6a 473 #define __HAL_RTC_TIMESTAMP_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
mbed_official 330:c80ac197fa6a 474
mbed_official 330:c80ac197fa6a 475 /**
mbed_official 330:c80ac197fa6a 476 * @brief Enable the RTC WakeUpTimer interrupt.
mbed_official 330:c80ac197fa6a 477 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 478 * @param __INTERRUPT__: specifies the RTC WakeUpTimer interrupt sources to be enabled or disabled.
mbed_official 330:c80ac197fa6a 479 * This parameter can be:
mbed_official 330:c80ac197fa6a 480 * @arg RTC_IT_WUT: WakeUpTimer A interrupt
mbed_official 330:c80ac197fa6a 481 * @retval None
mbed_official 330:c80ac197fa6a 482 */
mbed_official 330:c80ac197fa6a 483 #define __HAL_RTC_WAKEUPTIMER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
mbed_official 330:c80ac197fa6a 484
mbed_official 330:c80ac197fa6a 485 /**
mbed_official 330:c80ac197fa6a 486 * @brief Disable the RTC TimeStamp interrupt.
mbed_official 330:c80ac197fa6a 487 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 488 * @param __INTERRUPT__: specifies the RTC TimeStamp interrupt sources to be enabled or disabled.
mbed_official 330:c80ac197fa6a 489 * This parameter can be:
mbed_official 330:c80ac197fa6a 490 * @arg RTC_IT_TS: TimeStamp interrupt
mbed_official 330:c80ac197fa6a 491 * @retval None
mbed_official 330:c80ac197fa6a 492 */
mbed_official 330:c80ac197fa6a 493 #define __HAL_RTC_TIMESTAMP_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
mbed_official 330:c80ac197fa6a 494
mbed_official 330:c80ac197fa6a 495 /**
mbed_official 330:c80ac197fa6a 496 * @brief Disable the RTC WakeUpTimer interrupt.
mbed_official 330:c80ac197fa6a 497 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 498 * @param __INTERRUPT__: specifies the RTC WakeUpTimer interrupt sources to be enabled or disabled.
mbed_official 330:c80ac197fa6a 499 * This parameter can be:
mbed_official 330:c80ac197fa6a 500 * @arg RTC_IT_WUT: WakeUpTimer A interrupt
mbed_official 330:c80ac197fa6a 501 * @retval None
mbed_official 330:c80ac197fa6a 502 */
mbed_official 330:c80ac197fa6a 503 #define __HAL_RTC_WAKEUPTIMER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
mbed_official 330:c80ac197fa6a 504
mbed_official 330:c80ac197fa6a 505 /**
mbed_official 330:c80ac197fa6a 506 * @brief Check whether the specified RTC Tamper interrupt has occurred or not.
mbed_official 330:c80ac197fa6a 507 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 508 * @param __FLAG__: specifies the RTC Tamper interrupt sources to be enabled or disabled.
mbed_official 330:c80ac197fa6a 509 * This parameter can be:
mbed_official 330:c80ac197fa6a 510 * @arg RTC_IT_TAMP1
mbed_official 330:c80ac197fa6a 511 * @retval None
mbed_official 330:c80ac197fa6a 512 */
mbed_official 330:c80ac197fa6a 513 #define __HAL_RTC_TAMPER_GET_IT(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & ((__FLAG__)>> 4)) != RESET)? SET : RESET)
mbed_official 330:c80ac197fa6a 514
mbed_official 330:c80ac197fa6a 515 /**
mbed_official 330:c80ac197fa6a 516 * @brief Check whether the specified RTC WakeUpTimer interrupt has occurred or not.
mbed_official 330:c80ac197fa6a 517 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 518 * @param __FLAG__: specifies the RTC WakeUpTimer interrupt sources to be enabled or disabled.
mbed_official 330:c80ac197fa6a 519 * This parameter can be:
mbed_official 330:c80ac197fa6a 520 * @arg RTC_IT_WUT: WakeUpTimer A interrupt
mbed_official 330:c80ac197fa6a 521 * @retval None
mbed_official 330:c80ac197fa6a 522 */
mbed_official 330:c80ac197fa6a 523 #define __HAL_RTC_WAKEUPTIMER_GET_IT(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & ((__FLAG__)>> 4)) != RESET)? SET : RESET)
mbed_official 330:c80ac197fa6a 524
mbed_official 330:c80ac197fa6a 525 /**
mbed_official 330:c80ac197fa6a 526 * @brief Check whether the specified RTC TimeStamp interrupt has occurred or not.
mbed_official 330:c80ac197fa6a 527 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 528 * @param __FLAG__: specifies the RTC TimeStamp interrupt sources to be enabled or disabled.
mbed_official 330:c80ac197fa6a 529 * This parameter can be:
mbed_official 330:c80ac197fa6a 530 * @arg RTC_IT_TS: TimeStamp interrupt
mbed_official 330:c80ac197fa6a 531 * @retval None
mbed_official 330:c80ac197fa6a 532 */
mbed_official 330:c80ac197fa6a 533 #define __HAL_RTC_TIMESTAMP_GET_IT(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & ((__FLAG__)>> 4)) != RESET)? SET : RESET)
mbed_official 330:c80ac197fa6a 534
mbed_official 330:c80ac197fa6a 535 /**
mbed_official 330:c80ac197fa6a 536 * @brief Get the selected RTC TimeStamp's flag status.
mbed_official 330:c80ac197fa6a 537 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 538 * @param __FLAG__: specifies the RTC TimeStamp Flag sources to be enabled or disabled.
mbed_official 330:c80ac197fa6a 539 * This parameter can be:
mbed_official 330:c80ac197fa6a 540 * @arg RTC_FLAG_TSF
mbed_official 330:c80ac197fa6a 541 * @arg RTC_FLAG_TSOVF
mbed_official 330:c80ac197fa6a 542 * @retval None
mbed_official 330:c80ac197fa6a 543 */
mbed_official 330:c80ac197fa6a 544 #define __HAL_RTC_TIMESTAMP_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
mbed_official 330:c80ac197fa6a 545
mbed_official 330:c80ac197fa6a 546 /**
mbed_official 330:c80ac197fa6a 547 * @brief Get the selected RTC WakeUpTimer's flag status.
mbed_official 330:c80ac197fa6a 548 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 549 * @param __FLAG__: specifies the RTC WakeUpTimer Flag sources to be enabled or disabled.
mbed_official 330:c80ac197fa6a 550 * This parameter can be:
mbed_official 330:c80ac197fa6a 551 * @arg RTC_FLAG_WUTF
mbed_official 330:c80ac197fa6a 552 * @arg RTC_FLAG_WUTWF
mbed_official 330:c80ac197fa6a 553 * @retval None
mbed_official 330:c80ac197fa6a 554 */
mbed_official 330:c80ac197fa6a 555 #define __HAL_RTC_WAKEUPTIMER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
mbed_official 330:c80ac197fa6a 556
mbed_official 330:c80ac197fa6a 557 /**
mbed_official 330:c80ac197fa6a 558 * @brief Get the selected RTC Tamper's flag status.
mbed_official 330:c80ac197fa6a 559 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 560 * @param __FLAG__: specifies the RTC Tamper Flag sources to be enabled or disabled.
mbed_official 330:c80ac197fa6a 561 * This parameter can be:
mbed_official 330:c80ac197fa6a 562 * @arg RTC_FLAG_TAMP1F
mbed_official 330:c80ac197fa6a 563 * @retval None
mbed_official 330:c80ac197fa6a 564 */
mbed_official 330:c80ac197fa6a 565 #define __HAL_RTC_TAMPER_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
mbed_official 330:c80ac197fa6a 566
mbed_official 330:c80ac197fa6a 567 /**
mbed_official 330:c80ac197fa6a 568 * @brief Get the selected RTC shift operation's flag status.
mbed_official 330:c80ac197fa6a 569 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 570 * @param __FLAG__: specifies the RTC shift operation Flag is pending or not.
mbed_official 330:c80ac197fa6a 571 * This parameter can be:
mbed_official 330:c80ac197fa6a 572 * @arg RTC_FLAG_SHPF
mbed_official 330:c80ac197fa6a 573 * @retval None
mbed_official 330:c80ac197fa6a 574 */
mbed_official 330:c80ac197fa6a 575 #define __HAL_RTC_SHIFT_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
mbed_official 330:c80ac197fa6a 576
mbed_official 330:c80ac197fa6a 577 /**
mbed_official 330:c80ac197fa6a 578 * @brief Clear the RTC Time Stamp's pending flags.
mbed_official 330:c80ac197fa6a 579 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 580 * @param __FLAG__: specifies the RTC Alarm Flag sources to be enabled or disabled.
mbed_official 330:c80ac197fa6a 581 * This parameter can be:
mbed_official 330:c80ac197fa6a 582 * @arg RTC_FLAG_TSF
mbed_official 330:c80ac197fa6a 583 * @retval None
mbed_official 330:c80ac197fa6a 584 */
mbed_official 330:c80ac197fa6a 585 #define __HAL_RTC_TIMESTAMP_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~(((__FLAG__) | RTC_ISR_INIT)& 0x0000FFFF)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
mbed_official 330:c80ac197fa6a 586
mbed_official 330:c80ac197fa6a 587 /**
mbed_official 330:c80ac197fa6a 588 * @brief Clear the RTC Tamper's pending flags.
mbed_official 330:c80ac197fa6a 589 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 590 * @param __FLAG__: specifies the RTC Tamper Flag sources to be enabled or disabled.
mbed_official 330:c80ac197fa6a 591 * This parameter can be:
mbed_official 330:c80ac197fa6a 592 * @arg RTC_FLAG_TAMP1F
mbed_official 330:c80ac197fa6a 593 * @retval None
mbed_official 330:c80ac197fa6a 594 */
mbed_official 330:c80ac197fa6a 595 #define __HAL_RTC_TAMPER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~(((__FLAG__) | RTC_ISR_INIT)& 0x0000FFFF)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
mbed_official 330:c80ac197fa6a 596
mbed_official 330:c80ac197fa6a 597 /**
mbed_official 330:c80ac197fa6a 598 * @brief Clear the RTC Wake Up timer's pending flags.
mbed_official 330:c80ac197fa6a 599 * @param __HANDLE__: specifies the RTC handle.
mbed_official 330:c80ac197fa6a 600 * @param __FLAG__: specifies the RTC Tamper Flag sources to be enabled or disabled.
mbed_official 330:c80ac197fa6a 601 * This parameter can be:
mbed_official 330:c80ac197fa6a 602 * @arg RTC_FLAG_WUTF
mbed_official 330:c80ac197fa6a 603 * @retval None
mbed_official 330:c80ac197fa6a 604 */
mbed_official 330:c80ac197fa6a 605 #define __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~(((__FLAG__) | RTC_ISR_INIT)& 0x0000FFFF)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
mbed_official 330:c80ac197fa6a 606 /**
mbed_official 330:c80ac197fa6a 607 * @}
mbed_official 330:c80ac197fa6a 608 */
mbed_official 330:c80ac197fa6a 609
mbed_official 330:c80ac197fa6a 610 /* Exported functions --------------------------------------------------------*/
mbed_official 330:c80ac197fa6a 611 /** @addtogroup RTCEx_Exported_Functions RTC Extended Exported Functions
mbed_official 330:c80ac197fa6a 612 * @{
mbed_official 330:c80ac197fa6a 613 */
mbed_official 330:c80ac197fa6a 614
mbed_official 330:c80ac197fa6a 615 /** @addtogroup RTCEx_Exported_Functions_Group1 RTC TimeStamp and Tamper functions
mbed_official 330:c80ac197fa6a 616 * @{
mbed_official 330:c80ac197fa6a 617 */
mbed_official 330:c80ac197fa6a 618
mbed_official 330:c80ac197fa6a 619 /* RTC TimeStamp and Tamper functions *****************************************/
mbed_official 330:c80ac197fa6a 620 HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin);
mbed_official 330:c80ac197fa6a 621 HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin);
mbed_official 330:c80ac197fa6a 622 HAL_StatusTypeDef HAL_RTCEx_DeactivateTimeStamp(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 623 HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format);
mbed_official 330:c80ac197fa6a 624
mbed_official 330:c80ac197fa6a 625 HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef* sTamper);
mbed_official 330:c80ac197fa6a 626 HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef* sTamper);
mbed_official 330:c80ac197fa6a 627 HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper);
mbed_official 330:c80ac197fa6a 628 void HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 629
mbed_official 330:c80ac197fa6a 630 void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 631 void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 632 void HAL_RTCEx_Tamper3EventCallback(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 633 void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 634 HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
mbed_official 330:c80ac197fa6a 635 HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
mbed_official 330:c80ac197fa6a 636 HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
mbed_official 330:c80ac197fa6a 637 HAL_StatusTypeDef HAL_RTCEx_PollForTamper3Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
mbed_official 330:c80ac197fa6a 638 /**
mbed_official 330:c80ac197fa6a 639 * @}
mbed_official 330:c80ac197fa6a 640 */
mbed_official 330:c80ac197fa6a 641
mbed_official 330:c80ac197fa6a 642 /** @addtogroup RTCEx_Exported_Functions_Group2 Extended Wake-up functions
mbed_official 330:c80ac197fa6a 643 * @{
mbed_official 330:c80ac197fa6a 644 */
mbed_official 330:c80ac197fa6a 645
mbed_official 330:c80ac197fa6a 646 /* RTC Wake-up functions ******************************************************/
mbed_official 330:c80ac197fa6a 647 HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
mbed_official 330:c80ac197fa6a 648 HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock);
mbed_official 330:c80ac197fa6a 649 uint32_t HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 650 uint32_t HAL_RTCEx_GetWakeUpTimer(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 651 void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 652 void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 653 HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
mbed_official 330:c80ac197fa6a 654 /**
mbed_official 330:c80ac197fa6a 655 * @}
mbed_official 330:c80ac197fa6a 656 */
mbed_official 330:c80ac197fa6a 657
mbed_official 330:c80ac197fa6a 658 /** @addtogroup RTCEx_Exported_Functions_Group3 Extended Peripheral Control functions
mbed_official 330:c80ac197fa6a 659 * @{
mbed_official 330:c80ac197fa6a 660 */
mbed_official 330:c80ac197fa6a 661
mbed_official 330:c80ac197fa6a 662 /* Extended Control functions ************************************************/
mbed_official 330:c80ac197fa6a 663 void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data);
mbed_official 330:c80ac197fa6a 664 uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister);
mbed_official 330:c80ac197fa6a 665
mbed_official 330:c80ac197fa6a 666 HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmouthCalibMinusPulsesValue);
mbed_official 330:c80ac197fa6a 667 HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS);
mbed_official 330:c80ac197fa6a 668 HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput);
mbed_official 330:c80ac197fa6a 669 HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 670 HAL_StatusTypeDef HAL_RTCEx_SetRefClock(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 671 HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 672 HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 673 HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 674 /**
mbed_official 330:c80ac197fa6a 675 * @}
mbed_official 330:c80ac197fa6a 676 */
mbed_official 330:c80ac197fa6a 677
mbed_official 330:c80ac197fa6a 678 /* Extended RTC features functions *******************************************/
mbed_official 330:c80ac197fa6a 679 /** @addtogroup RTCEx_Exported_Functions_Group4 Extended features functions
mbed_official 330:c80ac197fa6a 680 * @{
mbed_official 330:c80ac197fa6a 681 */
mbed_official 330:c80ac197fa6a 682 void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc);
mbed_official 330:c80ac197fa6a 683 HAL_StatusTypeDef HAL_RTCEx_PollForAlarmBEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
mbed_official 330:c80ac197fa6a 684
mbed_official 330:c80ac197fa6a 685 /**
mbed_official 330:c80ac197fa6a 686 * @}
mbed_official 330:c80ac197fa6a 687 */
mbed_official 330:c80ac197fa6a 688
mbed_official 330:c80ac197fa6a 689 /**
mbed_official 330:c80ac197fa6a 690 * @}
mbed_official 330:c80ac197fa6a 691 */
mbed_official 330:c80ac197fa6a 692
mbed_official 330:c80ac197fa6a 693 /**
mbed_official 330:c80ac197fa6a 694 * @}
mbed_official 330:c80ac197fa6a 695 */
mbed_official 330:c80ac197fa6a 696
mbed_official 330:c80ac197fa6a 697 /**
mbed_official 330:c80ac197fa6a 698 * @}
mbed_official 330:c80ac197fa6a 699 */
mbed_official 330:c80ac197fa6a 700
mbed_official 330:c80ac197fa6a 701 #ifdef __cplusplus
mbed_official 330:c80ac197fa6a 702 }
mbed_official 330:c80ac197fa6a 703 #endif
mbed_official 330:c80ac197fa6a 704
mbed_official 330:c80ac197fa6a 705 #endif /* __STM32F3xx_HAL_RTC_EX_H */
mbed_official 330:c80ac197fa6a 706
mbed_official 330:c80ac197fa6a 707 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/