mbed library sources

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Thu Oct 16 15:00:10 2014 +0100
Revision:
354:e67efb2aab0e
Synchronized with git revision 36a8882a54cbf25645fa6e11af937c8b8048e184

Full URL: https://github.com/mbedmicro/mbed/commit/36a8882a54cbf25645fa6e11af937c8b8048e184/

Targets: NUCLEO_L152RE - Migration to STM32Cube driver (CMSIS and HAL)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 354:e67efb2aab0e 1 /**
mbed_official 354:e67efb2aab0e 2 ******************************************************************************
mbed_official 354:e67efb2aab0e 3 * @file stm32l1xx_hal_rtc.h
mbed_official 354:e67efb2aab0e 4 * @author MCD Application Team
mbed_official 354:e67efb2aab0e 5 * @version V1.0.0
mbed_official 354:e67efb2aab0e 6 * @date 5-September-2014
mbed_official 354:e67efb2aab0e 7 * @brief Header file of RTC HAL module.
mbed_official 354:e67efb2aab0e 8 ******************************************************************************
mbed_official 354:e67efb2aab0e 9 * @attention
mbed_official 354:e67efb2aab0e 10 *
mbed_official 354:e67efb2aab0e 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 354:e67efb2aab0e 12 *
mbed_official 354:e67efb2aab0e 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 354:e67efb2aab0e 14 * are permitted provided that the following conditions are met:
mbed_official 354:e67efb2aab0e 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 354:e67efb2aab0e 16 * this list of conditions and the following disclaimer.
mbed_official 354:e67efb2aab0e 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 354:e67efb2aab0e 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 354:e67efb2aab0e 19 * and/or other materials provided with the distribution.
mbed_official 354:e67efb2aab0e 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 354:e67efb2aab0e 21 * may be used to endorse or promote products derived from this software
mbed_official 354:e67efb2aab0e 22 * without specific prior written permission.
mbed_official 354:e67efb2aab0e 23 *
mbed_official 354:e67efb2aab0e 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 354:e67efb2aab0e 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 354:e67efb2aab0e 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 354:e67efb2aab0e 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 354:e67efb2aab0e 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 354:e67efb2aab0e 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 354:e67efb2aab0e 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 354:e67efb2aab0e 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 354:e67efb2aab0e 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 354:e67efb2aab0e 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 354:e67efb2aab0e 34 *
mbed_official 354:e67efb2aab0e 35 ******************************************************************************
mbed_official 354:e67efb2aab0e 36 */
mbed_official 354:e67efb2aab0e 37
mbed_official 354:e67efb2aab0e 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 354:e67efb2aab0e 39 #ifndef __STM32L1xx_HAL_RTC_H
mbed_official 354:e67efb2aab0e 40 #define __STM32L1xx_HAL_RTC_H
mbed_official 354:e67efb2aab0e 41
mbed_official 354:e67efb2aab0e 42 #ifdef __cplusplus
mbed_official 354:e67efb2aab0e 43 extern "C" {
mbed_official 354:e67efb2aab0e 44 #endif
mbed_official 354:e67efb2aab0e 45
mbed_official 354:e67efb2aab0e 46 /* Includes ------------------------------------------------------------------*/
mbed_official 354:e67efb2aab0e 47 #include "stm32l1xx_hal_def.h"
mbed_official 354:e67efb2aab0e 48
mbed_official 354:e67efb2aab0e 49 /** @addtogroup STM32L1xx_HAL_Driver
mbed_official 354:e67efb2aab0e 50 * @{
mbed_official 354:e67efb2aab0e 51 */
mbed_official 354:e67efb2aab0e 52
mbed_official 354:e67efb2aab0e 53 /** @addtogroup RTC
mbed_official 354:e67efb2aab0e 54 * @{
mbed_official 354:e67efb2aab0e 55 */
mbed_official 354:e67efb2aab0e 56
mbed_official 354:e67efb2aab0e 57 /* Exported types ------------------------------------------------------------*/
mbed_official 354:e67efb2aab0e 58 /** @defgroup RTC_Exported_Types RTC Exported Types
mbed_official 354:e67efb2aab0e 59 * @{
mbed_official 354:e67efb2aab0e 60 */
mbed_official 354:e67efb2aab0e 61
mbed_official 354:e67efb2aab0e 62 /**
mbed_official 354:e67efb2aab0e 63 * @brief HAL State structures definition
mbed_official 354:e67efb2aab0e 64 */
mbed_official 354:e67efb2aab0e 65 typedef enum
mbed_official 354:e67efb2aab0e 66 {
mbed_official 354:e67efb2aab0e 67 HAL_RTC_STATE_RESET = 0x00, /*!< RTC not yet initialized or disabled */
mbed_official 354:e67efb2aab0e 68 HAL_RTC_STATE_READY = 0x01, /*!< RTC initialized and ready for use */
mbed_official 354:e67efb2aab0e 69 HAL_RTC_STATE_BUSY = 0x02, /*!< RTC process is ongoing */
mbed_official 354:e67efb2aab0e 70 HAL_RTC_STATE_TIMEOUT = 0x03, /*!< RTC timeout state */
mbed_official 354:e67efb2aab0e 71 HAL_RTC_STATE_ERROR = 0x04 /*!< RTC error state */
mbed_official 354:e67efb2aab0e 72
mbed_official 354:e67efb2aab0e 73 }HAL_RTCStateTypeDef;
mbed_official 354:e67efb2aab0e 74
mbed_official 354:e67efb2aab0e 75 /**
mbed_official 354:e67efb2aab0e 76 * @brief RTC Configuration Structure definition
mbed_official 354:e67efb2aab0e 77 */
mbed_official 354:e67efb2aab0e 78 typedef struct
mbed_official 354:e67efb2aab0e 79 {
mbed_official 354:e67efb2aab0e 80 uint32_t HourFormat; /*!< Specifies the RTC Hour Format.
mbed_official 354:e67efb2aab0e 81 This parameter can be a value of @ref RTC_Hour_Formats */
mbed_official 354:e67efb2aab0e 82
mbed_official 354:e67efb2aab0e 83 uint32_t AsynchPrediv; /*!< Specifies the RTC Asynchronous Predivider value.
mbed_official 354:e67efb2aab0e 84 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x7F */
mbed_official 354:e67efb2aab0e 85
mbed_official 354:e67efb2aab0e 86 uint32_t SynchPrediv; /*!< Specifies the RTC Synchronous Predivider value.
mbed_official 354:e67efb2aab0e 87 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0x7FFF */
mbed_official 354:e67efb2aab0e 88
mbed_official 354:e67efb2aab0e 89 uint32_t OutPut; /*!< Specifies which signal will be routed to the RTC output.
mbed_official 354:e67efb2aab0e 90 This parameter can be a value of @ref RTCEx_Output_selection_Definitions */
mbed_official 354:e67efb2aab0e 91
mbed_official 354:e67efb2aab0e 92 uint32_t OutPutPolarity; /*!< Specifies the polarity of the output signal.
mbed_official 354:e67efb2aab0e 93 This parameter can be a value of @ref RTC_Output_Polarity_Definitions */
mbed_official 354:e67efb2aab0e 94
mbed_official 354:e67efb2aab0e 95 uint32_t OutPutType; /*!< Specifies the RTC Output Pin mode.
mbed_official 354:e67efb2aab0e 96 This parameter can be a value of @ref RTC_Output_Type_ALARM_OUT */
mbed_official 354:e67efb2aab0e 97 }RTC_InitTypeDef;
mbed_official 354:e67efb2aab0e 98
mbed_official 354:e67efb2aab0e 99 /**
mbed_official 354:e67efb2aab0e 100 * @brief RTC Date structure definition
mbed_official 354:e67efb2aab0e 101 */
mbed_official 354:e67efb2aab0e 102 typedef struct
mbed_official 354:e67efb2aab0e 103 {
mbed_official 354:e67efb2aab0e 104 uint8_t WeekDay; /*!< Specifies the RTC Date WeekDay.
mbed_official 354:e67efb2aab0e 105 This parameter can be a value of @ref RTC_WeekDay_Definitions */
mbed_official 354:e67efb2aab0e 106
mbed_official 354:e67efb2aab0e 107 uint8_t Month; /*!< Specifies the RTC Date Month (in BCD format).
mbed_official 354:e67efb2aab0e 108 This parameter can be a value of @ref RTC_Month_Date_Definitions */
mbed_official 354:e67efb2aab0e 109
mbed_official 354:e67efb2aab0e 110 uint8_t Date; /*!< Specifies the RTC Date.
mbed_official 354:e67efb2aab0e 111 This parameter must be a number between Min_Data = 1 and Max_Data = 31 */
mbed_official 354:e67efb2aab0e 112
mbed_official 354:e67efb2aab0e 113 uint8_t Year; /*!< Specifies the RTC Date Year.
mbed_official 354:e67efb2aab0e 114 This parameter must be a number between Min_Data = 0 and Max_Data = 99 */
mbed_official 354:e67efb2aab0e 115
mbed_official 354:e67efb2aab0e 116 }RTC_DateTypeDef;
mbed_official 354:e67efb2aab0e 117
mbed_official 354:e67efb2aab0e 118 /**
mbed_official 354:e67efb2aab0e 119 * @brief Time Handle Structure definition
mbed_official 354:e67efb2aab0e 120 */
mbed_official 354:e67efb2aab0e 121 typedef struct
mbed_official 354:e67efb2aab0e 122 {
mbed_official 354:e67efb2aab0e 123 RTC_TypeDef *Instance; /*!< Register base address */
mbed_official 354:e67efb2aab0e 124
mbed_official 354:e67efb2aab0e 125 RTC_InitTypeDef Init; /*!< RTC required parameters */
mbed_official 354:e67efb2aab0e 126
mbed_official 354:e67efb2aab0e 127 HAL_LockTypeDef Lock; /*!< RTC locking object */
mbed_official 354:e67efb2aab0e 128
mbed_official 354:e67efb2aab0e 129 __IO HAL_RTCStateTypeDef State; /*!< Time communication state */
mbed_official 354:e67efb2aab0e 130
mbed_official 354:e67efb2aab0e 131 }RTC_HandleTypeDef;
mbed_official 354:e67efb2aab0e 132
mbed_official 354:e67efb2aab0e 133 /**
mbed_official 354:e67efb2aab0e 134 * @}
mbed_official 354:e67efb2aab0e 135 */
mbed_official 354:e67efb2aab0e 136
mbed_official 354:e67efb2aab0e 137 /* Exported constants --------------------------------------------------------*/
mbed_official 354:e67efb2aab0e 138 /** @defgroup RTC_Exported_Constants RTC Exported Constants
mbed_official 354:e67efb2aab0e 139 * @{
mbed_official 354:e67efb2aab0e 140 */
mbed_official 354:e67efb2aab0e 141
mbed_official 354:e67efb2aab0e 142 /** @defgroup RTC_Timeout_Value Default Timeout Value
mbed_official 354:e67efb2aab0e 143 * @{
mbed_official 354:e67efb2aab0e 144 */
mbed_official 354:e67efb2aab0e 145 #define RTC_TIMEOUT_VALUE 1000
mbed_official 354:e67efb2aab0e 146 /**
mbed_official 354:e67efb2aab0e 147 * @}
mbed_official 354:e67efb2aab0e 148 */
mbed_official 354:e67efb2aab0e 149
mbed_official 354:e67efb2aab0e 150 /** @defgroup RTC_Hour_Formats Hour Formats
mbed_official 354:e67efb2aab0e 151 * @{
mbed_official 354:e67efb2aab0e 152 */
mbed_official 354:e67efb2aab0e 153 #define RTC_HOURFORMAT_24 ((uint32_t)0x00000000)
mbed_official 354:e67efb2aab0e 154 #define RTC_HOURFORMAT_12 ((uint32_t)0x00000040)
mbed_official 354:e67efb2aab0e 155
mbed_official 354:e67efb2aab0e 156 #define IS_RTC_HOUR_FORMAT(FORMAT) (((FORMAT) == RTC_HOURFORMAT_12) || \
mbed_official 354:e67efb2aab0e 157 ((FORMAT) == RTC_HOURFORMAT_24))
mbed_official 354:e67efb2aab0e 158 /**
mbed_official 354:e67efb2aab0e 159 * @}
mbed_official 354:e67efb2aab0e 160 */
mbed_official 354:e67efb2aab0e 161
mbed_official 354:e67efb2aab0e 162 /** @defgroup RTC_Output_Polarity_Definitions Outpout Polarity
mbed_official 354:e67efb2aab0e 163 * @{
mbed_official 354:e67efb2aab0e 164 */
mbed_official 354:e67efb2aab0e 165 #define RTC_OUTPUT_POLARITY_HIGH ((uint32_t)0x00000000)
mbed_official 354:e67efb2aab0e 166 #define RTC_OUTPUT_POLARITY_LOW ((uint32_t)0x00100000)
mbed_official 354:e67efb2aab0e 167
mbed_official 354:e67efb2aab0e 168 #define IS_RTC_OUTPUT_POL(POL) (((POL) == RTC_OUTPUT_POLARITY_HIGH) || \
mbed_official 354:e67efb2aab0e 169 ((POL) == RTC_OUTPUT_POLARITY_LOW))
mbed_official 354:e67efb2aab0e 170 /**
mbed_official 354:e67efb2aab0e 171 * @}
mbed_official 354:e67efb2aab0e 172 */
mbed_official 354:e67efb2aab0e 173
mbed_official 354:e67efb2aab0e 174 /** @defgroup RTC_Output_Type_ALARM_OUT Alarm Output Type
mbed_official 354:e67efb2aab0e 175 * @{
mbed_official 354:e67efb2aab0e 176 */
mbed_official 354:e67efb2aab0e 177 #define RTC_OUTPUT_TYPE_OPENDRAIN ((uint32_t)0x00000000)
mbed_official 354:e67efb2aab0e 178 #define RTC_OUTPUT_TYPE_PUSHPULL ((uint32_t)0x00040000)
mbed_official 354:e67efb2aab0e 179
mbed_official 354:e67efb2aab0e 180 #define IS_RTC_OUTPUT_TYPE(TYPE) (((TYPE) == RTC_OUTPUT_TYPE_OPENDRAIN) || \
mbed_official 354:e67efb2aab0e 181 ((TYPE) == RTC_OUTPUT_TYPE_PUSHPULL))
mbed_official 354:e67efb2aab0e 182
mbed_official 354:e67efb2aab0e 183 /**
mbed_official 354:e67efb2aab0e 184 * @}
mbed_official 354:e67efb2aab0e 185 */
mbed_official 354:e67efb2aab0e 186
mbed_official 354:e67efb2aab0e 187 /** @defgroup RTC_Asynchronous_Predivider Asynchronous Predivider
mbed_official 354:e67efb2aab0e 188 * @{
mbed_official 354:e67efb2aab0e 189 */
mbed_official 354:e67efb2aab0e 190 #define IS_RTC_ASYNCH_PREDIV(PREDIV) ((PREDIV) <= (uint32_t)0x7F)
mbed_official 354:e67efb2aab0e 191 /**
mbed_official 354:e67efb2aab0e 192 * @}
mbed_official 354:e67efb2aab0e 193 */
mbed_official 354:e67efb2aab0e 194
mbed_official 354:e67efb2aab0e 195 /** @defgroup RTC_Time_Definitions Time Definitions
mbed_official 354:e67efb2aab0e 196 * @{
mbed_official 354:e67efb2aab0e 197 */
mbed_official 354:e67efb2aab0e 198 #define IS_RTC_HOUR12(HOUR) (((HOUR) > (uint32_t)0) && ((HOUR) <= (uint32_t)12))
mbed_official 354:e67efb2aab0e 199 #define IS_RTC_HOUR24(HOUR) ((HOUR) <= (uint32_t)23)
mbed_official 354:e67efb2aab0e 200 #define IS_RTC_MINUTES(MINUTES) ((MINUTES) <= (uint32_t)59)
mbed_official 354:e67efb2aab0e 201 #define IS_RTC_SECONDS(SECONDS) ((SECONDS) <= (uint32_t)59)
mbed_official 354:e67efb2aab0e 202 /**
mbed_official 354:e67efb2aab0e 203 * @}
mbed_official 354:e67efb2aab0e 204 */
mbed_official 354:e67efb2aab0e 205
mbed_official 354:e67efb2aab0e 206 /** @defgroup RTC_AM_PM_Definitions AM PM Definitions
mbed_official 354:e67efb2aab0e 207 * @{
mbed_official 354:e67efb2aab0e 208 */
mbed_official 354:e67efb2aab0e 209 #define RTC_HOURFORMAT12_AM ((uint8_t)0x00)
mbed_official 354:e67efb2aab0e 210 #define RTC_HOURFORMAT12_PM ((uint8_t)0x40)
mbed_official 354:e67efb2aab0e 211
mbed_official 354:e67efb2aab0e 212 #define IS_RTC_HOURFORMAT12(PM) (((PM) == RTC_HOURFORMAT12_AM) || ((PM) == RTC_HOURFORMAT12_PM))
mbed_official 354:e67efb2aab0e 213 /**
mbed_official 354:e67efb2aab0e 214 * @}
mbed_official 354:e67efb2aab0e 215 */
mbed_official 354:e67efb2aab0e 216
mbed_official 354:e67efb2aab0e 217 /** @defgroup RTC_DayLightSaving_Definitions DayLightSaving
mbed_official 354:e67efb2aab0e 218 * @{
mbed_official 354:e67efb2aab0e 219 */
mbed_official 354:e67efb2aab0e 220 #define RTC_DAYLIGHTSAVING_SUB1H ((uint32_t)0x00020000)
mbed_official 354:e67efb2aab0e 221 #define RTC_DAYLIGHTSAVING_ADD1H ((uint32_t)0x00010000)
mbed_official 354:e67efb2aab0e 222 #define RTC_DAYLIGHTSAVING_NONE ((uint32_t)0x00000000)
mbed_official 354:e67efb2aab0e 223
mbed_official 354:e67efb2aab0e 224 #define IS_RTC_DAYLIGHT_SAVING(SAVE) (((SAVE) == RTC_DAYLIGHTSAVING_SUB1H) || \
mbed_official 354:e67efb2aab0e 225 ((SAVE) == RTC_DAYLIGHTSAVING_ADD1H) || \
mbed_official 354:e67efb2aab0e 226 ((SAVE) == RTC_DAYLIGHTSAVING_NONE))
mbed_official 354:e67efb2aab0e 227 /**
mbed_official 354:e67efb2aab0e 228 * @}
mbed_official 354:e67efb2aab0e 229 */
mbed_official 354:e67efb2aab0e 230
mbed_official 354:e67efb2aab0e 231 /** @defgroup RTC_StoreOperation_Definitions StoreOperation
mbed_official 354:e67efb2aab0e 232 * @{
mbed_official 354:e67efb2aab0e 233 */
mbed_official 354:e67efb2aab0e 234 #define RTC_STOREOPERATION_RESET ((uint32_t)0x00000000)
mbed_official 354:e67efb2aab0e 235 #define RTC_STOREOPERATION_SET ((uint32_t)0x00040000)
mbed_official 354:e67efb2aab0e 236
mbed_official 354:e67efb2aab0e 237 #define IS_RTC_STORE_OPERATION(OPERATION) (((OPERATION) == RTC_STOREOPERATION_RESET) || \
mbed_official 354:e67efb2aab0e 238 ((OPERATION) == RTC_STOREOPERATION_SET))
mbed_official 354:e67efb2aab0e 239 /**
mbed_official 354:e67efb2aab0e 240 * @}
mbed_official 354:e67efb2aab0e 241 */
mbed_official 354:e67efb2aab0e 242
mbed_official 354:e67efb2aab0e 243 /** @defgroup RTC_Input_parameter_format_definitions Input Parameter Format
mbed_official 354:e67efb2aab0e 244 * @{
mbed_official 354:e67efb2aab0e 245 */
mbed_official 354:e67efb2aab0e 246 #define FORMAT_BIN ((uint32_t)0x000000000)
mbed_official 354:e67efb2aab0e 247 #define FORMAT_BCD ((uint32_t)0x000000001)
mbed_official 354:e67efb2aab0e 248
mbed_official 354:e67efb2aab0e 249 #define IS_RTC_FORMAT(FORMAT) (((FORMAT) == FORMAT_BIN) || ((FORMAT) == FORMAT_BCD))
mbed_official 354:e67efb2aab0e 250 /**
mbed_official 354:e67efb2aab0e 251 * @}
mbed_official 354:e67efb2aab0e 252 */
mbed_official 354:e67efb2aab0e 253
mbed_official 354:e67efb2aab0e 254 /** @defgroup RTC_Year_Date_Definitions Year Definitions
mbed_official 354:e67efb2aab0e 255 * @{
mbed_official 354:e67efb2aab0e 256 */
mbed_official 354:e67efb2aab0e 257 #define IS_RTC_YEAR(YEAR) ((YEAR) <= (uint32_t)99)
mbed_official 354:e67efb2aab0e 258 /**
mbed_official 354:e67efb2aab0e 259 * @}
mbed_official 354:e67efb2aab0e 260 */
mbed_official 354:e67efb2aab0e 261
mbed_official 354:e67efb2aab0e 262 /** @defgroup RTC_Month_Date_Definitions Month Definitions
mbed_official 354:e67efb2aab0e 263 * @{
mbed_official 354:e67efb2aab0e 264 */
mbed_official 354:e67efb2aab0e 265
mbed_official 354:e67efb2aab0e 266 /* Coded in BCD format */
mbed_official 354:e67efb2aab0e 267 #define RTC_MONTH_JANUARY ((uint8_t)0x01)
mbed_official 354:e67efb2aab0e 268 #define RTC_MONTH_FEBRUARY ((uint8_t)0x02)
mbed_official 354:e67efb2aab0e 269 #define RTC_MONTH_MARCH ((uint8_t)0x03)
mbed_official 354:e67efb2aab0e 270 #define RTC_MONTH_APRIL ((uint8_t)0x04)
mbed_official 354:e67efb2aab0e 271 #define RTC_MONTH_MAY ((uint8_t)0x05)
mbed_official 354:e67efb2aab0e 272 #define RTC_MONTH_JUNE ((uint8_t)0x06)
mbed_official 354:e67efb2aab0e 273 #define RTC_MONTH_JULY ((uint8_t)0x07)
mbed_official 354:e67efb2aab0e 274 #define RTC_MONTH_AUGUST ((uint8_t)0x08)
mbed_official 354:e67efb2aab0e 275 #define RTC_MONTH_SEPTEMBER ((uint8_t)0x09)
mbed_official 354:e67efb2aab0e 276 #define RTC_MONTH_OCTOBER ((uint8_t)0x10)
mbed_official 354:e67efb2aab0e 277 #define RTC_MONTH_NOVEMBER ((uint8_t)0x11)
mbed_official 354:e67efb2aab0e 278 #define RTC_MONTH_DECEMBER ((uint8_t)0x12)
mbed_official 354:e67efb2aab0e 279
mbed_official 354:e67efb2aab0e 280 #define IS_RTC_MONTH(MONTH) (((MONTH) >= (uint32_t)1) && ((MONTH) <= (uint32_t)12))
mbed_official 354:e67efb2aab0e 281 #define IS_RTC_DATE(DATE) (((DATE) >= (uint32_t)1) && ((DATE) <= (uint32_t)31))
mbed_official 354:e67efb2aab0e 282 /**
mbed_official 354:e67efb2aab0e 283 * @}
mbed_official 354:e67efb2aab0e 284 */
mbed_official 354:e67efb2aab0e 285
mbed_official 354:e67efb2aab0e 286 /** @defgroup RTC_WeekDay_Definitions WeekDay Definitions
mbed_official 354:e67efb2aab0e 287 * @{
mbed_official 354:e67efb2aab0e 288 */
mbed_official 354:e67efb2aab0e 289 #define RTC_WEEKDAY_MONDAY ((uint8_t)0x01)
mbed_official 354:e67efb2aab0e 290 #define RTC_WEEKDAY_TUESDAY ((uint8_t)0x02)
mbed_official 354:e67efb2aab0e 291 #define RTC_WEEKDAY_WEDNESDAY ((uint8_t)0x03)
mbed_official 354:e67efb2aab0e 292 #define RTC_WEEKDAY_THURSDAY ((uint8_t)0x04)
mbed_official 354:e67efb2aab0e 293 #define RTC_WEEKDAY_FRIDAY ((uint8_t)0x05)
mbed_official 354:e67efb2aab0e 294 #define RTC_WEEKDAY_SATURDAY ((uint8_t)0x06)
mbed_official 354:e67efb2aab0e 295 #define RTC_WEEKDAY_SUNDAY ((uint8_t)0x07)
mbed_official 354:e67efb2aab0e 296
mbed_official 354:e67efb2aab0e 297 #define IS_RTC_WEEKDAY(WEEKDAY) (((WEEKDAY) == RTC_WEEKDAY_MONDAY) || \
mbed_official 354:e67efb2aab0e 298 ((WEEKDAY) == RTC_WEEKDAY_TUESDAY) || \
mbed_official 354:e67efb2aab0e 299 ((WEEKDAY) == RTC_WEEKDAY_WEDNESDAY) || \
mbed_official 354:e67efb2aab0e 300 ((WEEKDAY) == RTC_WEEKDAY_THURSDAY) || \
mbed_official 354:e67efb2aab0e 301 ((WEEKDAY) == RTC_WEEKDAY_FRIDAY) || \
mbed_official 354:e67efb2aab0e 302 ((WEEKDAY) == RTC_WEEKDAY_SATURDAY) || \
mbed_official 354:e67efb2aab0e 303 ((WEEKDAY) == RTC_WEEKDAY_SUNDAY))
mbed_official 354:e67efb2aab0e 304 /**
mbed_official 354:e67efb2aab0e 305 * @}
mbed_official 354:e67efb2aab0e 306 */
mbed_official 354:e67efb2aab0e 307
mbed_official 354:e67efb2aab0e 308 /** @defgroup RTC_Alarm_Definitions Alarm Definitions
mbed_official 354:e67efb2aab0e 309 * @{
mbed_official 354:e67efb2aab0e 310 */
mbed_official 354:e67efb2aab0e 311 #define IS_RTC_ALARM_DATE_WEEKDAY_DATE(DATE) (((DATE) >(uint32_t) 0) && ((DATE) <= (uint32_t)31))
mbed_official 354:e67efb2aab0e 312 #define IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(WEEKDAY) (((WEEKDAY) == RTC_WEEKDAY_MONDAY) || \
mbed_official 354:e67efb2aab0e 313 ((WEEKDAY) == RTC_WEEKDAY_TUESDAY) || \
mbed_official 354:e67efb2aab0e 314 ((WEEKDAY) == RTC_WEEKDAY_WEDNESDAY) || \
mbed_official 354:e67efb2aab0e 315 ((WEEKDAY) == RTC_WEEKDAY_THURSDAY) || \
mbed_official 354:e67efb2aab0e 316 ((WEEKDAY) == RTC_WEEKDAY_FRIDAY) || \
mbed_official 354:e67efb2aab0e 317 ((WEEKDAY) == RTC_WEEKDAY_SATURDAY) || \
mbed_official 354:e67efb2aab0e 318 ((WEEKDAY) == RTC_WEEKDAY_SUNDAY))
mbed_official 354:e67efb2aab0e 319 /**
mbed_official 354:e67efb2aab0e 320 * @}
mbed_official 354:e67efb2aab0e 321 */
mbed_official 354:e67efb2aab0e 322
mbed_official 354:e67efb2aab0e 323
mbed_official 354:e67efb2aab0e 324 /** @defgroup RTC_AlarmDateWeekDay_Definitions AlarmDateWeekDay Definitions
mbed_official 354:e67efb2aab0e 325 * @{
mbed_official 354:e67efb2aab0e 326 */
mbed_official 354:e67efb2aab0e 327 #define RTC_ALARMDATEWEEKDAYSEL_DATE ((uint32_t)0x00000000)
mbed_official 354:e67efb2aab0e 328 #define RTC_ALARMDATEWEEKDAYSEL_WEEKDAY ((uint32_t)0x40000000)
mbed_official 354:e67efb2aab0e 329
mbed_official 354:e67efb2aab0e 330 #define IS_RTC_ALARM_DATE_WEEKDAY_SEL(SEL) (((SEL) == RTC_ALARMDATEWEEKDAYSEL_DATE) || \
mbed_official 354:e67efb2aab0e 331 ((SEL) == RTC_ALARMDATEWEEKDAYSEL_WEEKDAY))
mbed_official 354:e67efb2aab0e 332 /**
mbed_official 354:e67efb2aab0e 333 * @}
mbed_official 354:e67efb2aab0e 334 */
mbed_official 354:e67efb2aab0e 335
mbed_official 354:e67efb2aab0e 336
mbed_official 354:e67efb2aab0e 337 /** @defgroup RTC_AlarmMask_Definitions Alarm Mask Definitions
mbed_official 354:e67efb2aab0e 338 * @{
mbed_official 354:e67efb2aab0e 339 */
mbed_official 354:e67efb2aab0e 340 #define RTC_ALARMMASK_NONE ((uint32_t)0x00000000)
mbed_official 354:e67efb2aab0e 341 #define RTC_ALARMMASK_DATEWEEKDAY RTC_ALRMAR_MSK4
mbed_official 354:e67efb2aab0e 342 #define RTC_ALARMMASK_HOURS RTC_ALRMAR_MSK3
mbed_official 354:e67efb2aab0e 343 #define RTC_ALARMMASK_MINUTES RTC_ALRMAR_MSK2
mbed_official 354:e67efb2aab0e 344 #define RTC_ALARMMASK_SECONDS RTC_ALRMAR_MSK1
mbed_official 354:e67efb2aab0e 345 #define RTC_ALARMMASK_ALL ((uint32_t)0x80808080)
mbed_official 354:e67efb2aab0e 346
mbed_official 354:e67efb2aab0e 347 #define IS_ALARM_MASK(MASK) (((MASK) & 0x7F7F7F7F) == (uint32_t)RESET)
mbed_official 354:e67efb2aab0e 348 /**
mbed_official 354:e67efb2aab0e 349 * @}
mbed_official 354:e67efb2aab0e 350 */
mbed_official 354:e67efb2aab0e 351
mbed_official 354:e67efb2aab0e 352 /** @defgroup RTC_Alarms_Definitions Alarms Definitions
mbed_official 354:e67efb2aab0e 353 * @{
mbed_official 354:e67efb2aab0e 354 */
mbed_official 354:e67efb2aab0e 355 #define RTC_ALARM_A RTC_CR_ALRAE
mbed_official 354:e67efb2aab0e 356 #define RTC_ALARM_B RTC_CR_ALRBE
mbed_official 354:e67efb2aab0e 357
mbed_official 354:e67efb2aab0e 358 #define IS_ALARM(ALARM) (((ALARM) == RTC_ALARM_A) || ((ALARM) == RTC_ALARM_B))
mbed_official 354:e67efb2aab0e 359 /**
mbed_official 354:e67efb2aab0e 360 * @}
mbed_official 354:e67efb2aab0e 361 */
mbed_official 354:e67efb2aab0e 362
mbed_official 354:e67efb2aab0e 363 /**
mbed_official 354:e67efb2aab0e 364 * @}
mbed_official 354:e67efb2aab0e 365 */
mbed_official 354:e67efb2aab0e 366
mbed_official 354:e67efb2aab0e 367 /* Exported macro ------------------------------------------------------------*/
mbed_official 354:e67efb2aab0e 368 /** @defgroup RTC_Exported_macros RTC Exported Macros
mbed_official 354:e67efb2aab0e 369 * @{
mbed_official 354:e67efb2aab0e 370 */
mbed_official 354:e67efb2aab0e 371
mbed_official 354:e67efb2aab0e 372 /** @brief Reset RTC handle state
mbed_official 354:e67efb2aab0e 373 * @param __HANDLE__: RTC handle.
mbed_official 354:e67efb2aab0e 374 * @retval None
mbed_official 354:e67efb2aab0e 375 */
mbed_official 354:e67efb2aab0e 376 #define __HAL_RTC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_RTC_STATE_RESET)
mbed_official 354:e67efb2aab0e 377
mbed_official 354:e67efb2aab0e 378 /**
mbed_official 354:e67efb2aab0e 379 * @brief Disable the write protection for RTC registers.
mbed_official 354:e67efb2aab0e 380 * @param __HANDLE__: specifies the RTC handle.
mbed_official 354:e67efb2aab0e 381 * @retval None
mbed_official 354:e67efb2aab0e 382 */
mbed_official 354:e67efb2aab0e 383 #define __HAL_RTC_WRITEPROTECTION_DISABLE(__HANDLE__) \
mbed_official 354:e67efb2aab0e 384 do{ \
mbed_official 354:e67efb2aab0e 385 (__HANDLE__)->Instance->WPR = 0xCA; \
mbed_official 354:e67efb2aab0e 386 (__HANDLE__)->Instance->WPR = 0x53; \
mbed_official 354:e67efb2aab0e 387 } while(0)
mbed_official 354:e67efb2aab0e 388
mbed_official 354:e67efb2aab0e 389 /**
mbed_official 354:e67efb2aab0e 390 * @brief Enable the write protection for RTC registers.
mbed_official 354:e67efb2aab0e 391 * @param __HANDLE__: specifies the RTC handle.
mbed_official 354:e67efb2aab0e 392 * @retval None
mbed_official 354:e67efb2aab0e 393 */
mbed_official 354:e67efb2aab0e 394 #define __HAL_RTC_WRITEPROTECTION_ENABLE(__HANDLE__) \
mbed_official 354:e67efb2aab0e 395 do{ \
mbed_official 354:e67efb2aab0e 396 (__HANDLE__)->Instance->WPR = 0xFF; \
mbed_official 354:e67efb2aab0e 397 } while(0)
mbed_official 354:e67efb2aab0e 398
mbed_official 354:e67efb2aab0e 399 /**
mbed_official 354:e67efb2aab0e 400 * @brief Enable the RTC ALARMA peripheral.
mbed_official 354:e67efb2aab0e 401 * @param __HANDLE__: specifies the RTC handle.
mbed_official 354:e67efb2aab0e 402 * @retval None
mbed_official 354:e67efb2aab0e 403 */
mbed_official 354:e67efb2aab0e 404 #define __HAL_RTC_ALARMA_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_ALRAE))
mbed_official 354:e67efb2aab0e 405
mbed_official 354:e67efb2aab0e 406 /**
mbed_official 354:e67efb2aab0e 407 * @brief Disable the RTC ALARMA peripheral.
mbed_official 354:e67efb2aab0e 408 * @param __HANDLE__: specifies the RTC handle.
mbed_official 354:e67efb2aab0e 409 * @retval None
mbed_official 354:e67efb2aab0e 410 */
mbed_official 354:e67efb2aab0e 411 #define __HAL_RTC_ALARMA_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_ALRAE))
mbed_official 354:e67efb2aab0e 412
mbed_official 354:e67efb2aab0e 413 /**
mbed_official 354:e67efb2aab0e 414 * @brief Enable the RTC ALARMB peripheral.
mbed_official 354:e67efb2aab0e 415 * @param __HANDLE__: specifies the RTC handle.
mbed_official 354:e67efb2aab0e 416 * @retval None
mbed_official 354:e67efb2aab0e 417 */
mbed_official 354:e67efb2aab0e 418 #define __HAL_RTC_ALARMB_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= (RTC_CR_ALRBE))
mbed_official 354:e67efb2aab0e 419
mbed_official 354:e67efb2aab0e 420 /**
mbed_official 354:e67efb2aab0e 421 * @brief Disable the RTC ALARMB peripheral.
mbed_official 354:e67efb2aab0e 422 * @param __HANDLE__: specifies the RTC handle.
mbed_official 354:e67efb2aab0e 423 * @retval None
mbed_official 354:e67efb2aab0e 424 */
mbed_official 354:e67efb2aab0e 425 #define __HAL_RTC_ALARMB_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~(RTC_CR_ALRBE))
mbed_official 354:e67efb2aab0e 426
mbed_official 354:e67efb2aab0e 427 /**
mbed_official 354:e67efb2aab0e 428 * @brief Enable the RTC Alarm interrupt.
mbed_official 354:e67efb2aab0e 429 * @param __HANDLE__: specifies the RTC handle.
mbed_official 354:e67efb2aab0e 430 * @param __INTERRUPT__: specifies the RTC Alarm interrupt sources to be enabled or disabled.
mbed_official 354:e67efb2aab0e 431 * This parameter can be any combination of the following values:
mbed_official 354:e67efb2aab0e 432 * @arg RTC_IT_ALRA: Alarm A interrupt
mbed_official 354:e67efb2aab0e 433 * @arg RTC_IT_ALRB: Alarm B interrupt
mbed_official 354:e67efb2aab0e 434 * @retval None
mbed_official 354:e67efb2aab0e 435 */
mbed_official 354:e67efb2aab0e 436 #define __HAL_RTC_ALARM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
mbed_official 354:e67efb2aab0e 437
mbed_official 354:e67efb2aab0e 438 /**
mbed_official 354:e67efb2aab0e 439 * @brief Disable the RTC Alarm interrupt.
mbed_official 354:e67efb2aab0e 440 * @param __HANDLE__: specifies the RTC handle.
mbed_official 354:e67efb2aab0e 441 * @param __INTERRUPT__: specifies the RTC Alarm interrupt sources to be enabled or disabled.
mbed_official 354:e67efb2aab0e 442 * This parameter can be any combination of the following values:
mbed_official 354:e67efb2aab0e 443 * @arg RTC_IT_ALRA: Alarm A interrupt
mbed_official 354:e67efb2aab0e 444 * @arg RTC_IT_ALRB: Alarm B interrupt
mbed_official 354:e67efb2aab0e 445 * @retval None
mbed_official 354:e67efb2aab0e 446 */
mbed_official 354:e67efb2aab0e 447 #define __HAL_RTC_ALARM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
mbed_official 354:e67efb2aab0e 448
mbed_official 354:e67efb2aab0e 449 /**
mbed_official 354:e67efb2aab0e 450 * @brief Check whether the specified RTC Alarm interrupt has occurred or not.
mbed_official 354:e67efb2aab0e 451 * @param __HANDLE__: specifies the RTC handle.
mbed_official 354:e67efb2aab0e 452 * @param __FLAG__: specifies the RTC Alarm interrupt sources to be enabled or disabled.
mbed_official 354:e67efb2aab0e 453 * This parameter can be:
mbed_official 354:e67efb2aab0e 454 * @arg RTC_IT_ALRA: Alarm A interrupt
mbed_official 354:e67efb2aab0e 455 * @arg RTC_IT_ALRB: Alarm B interrupt
mbed_official 354:e67efb2aab0e 456 * @retval None
mbed_official 354:e67efb2aab0e 457 */
mbed_official 354:e67efb2aab0e 458 #define __HAL_RTC_ALARM_GET_IT(__HANDLE__, __FLAG__) ((((((__HANDLE__)->Instance->ISR)& ((__FLAG__)>> 4)) & 0x0000FFFF) != RESET)? SET : RESET)
mbed_official 354:e67efb2aab0e 459
mbed_official 354:e67efb2aab0e 460 /**
mbed_official 354:e67efb2aab0e 461 * @brief Get the selected RTC Alarm's flag status.
mbed_official 354:e67efb2aab0e 462 * @param __HANDLE__: specifies the RTC handle.
mbed_official 354:e67efb2aab0e 463 * @param __FLAG__: specifies the RTC Alarm Flag sources to be enabled or disabled.
mbed_official 354:e67efb2aab0e 464 * This parameter can be:
mbed_official 354:e67efb2aab0e 465 * @arg RTC_FLAG_ALRAF
mbed_official 354:e67efb2aab0e 466 * @arg RTC_FLAG_ALRBF
mbed_official 354:e67efb2aab0e 467 * @arg RTC_FLAG_ALRAWF
mbed_official 354:e67efb2aab0e 468 * @arg RTC_FLAG_ALRBWF
mbed_official 354:e67efb2aab0e 469 * @retval None
mbed_official 354:e67efb2aab0e 470 */
mbed_official 354:e67efb2aab0e 471 #define __HAL_RTC_ALARM_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & (__FLAG__)) != RESET)? SET : RESET)
mbed_official 354:e67efb2aab0e 472
mbed_official 354:e67efb2aab0e 473 /**
mbed_official 354:e67efb2aab0e 474 * @brief Clear the RTC Alarm's pending flags.
mbed_official 354:e67efb2aab0e 475 * @param __HANDLE__: specifies the RTC handle.
mbed_official 354:e67efb2aab0e 476 * @param __FLAG__: specifies the RTC Alarm Flag sources to be enabled or disabled.
mbed_official 354:e67efb2aab0e 477 * This parameter can be:
mbed_official 354:e67efb2aab0e 478 * @arg RTC_FLAG_ALRAF
mbed_official 354:e67efb2aab0e 479 * @arg RTC_FLAG_ALRBF
mbed_official 354:e67efb2aab0e 480 * @retval None
mbed_official 354:e67efb2aab0e 481 */
mbed_official 354:e67efb2aab0e 482 #define __HAL_RTC_ALARM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR) = (~(((__FLAG__) | RTC_ISR_INIT)& 0x0000FFFF)|((__HANDLE__)->Instance->ISR & RTC_ISR_INIT))
mbed_official 354:e67efb2aab0e 483
mbed_official 354:e67efb2aab0e 484
mbed_official 354:e67efb2aab0e 485 #define RTC_EXTI_LINE_ALARM_EVENT ((uint32_t)0x00020000) /*!< External interrupt line 17 Connected to the RTC Alarm event */
mbed_official 354:e67efb2aab0e 486 #define RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT ((uint32_t)0x00080000) /*!< External interrupt line 19 Connected to the RTC Tamper and Time Stamp events */
mbed_official 354:e67efb2aab0e 487 #define RTC_EXTI_LINE_WAKEUPTIMER_EVENT ((uint32_t)0x00100000) /*!< External interrupt line 20 Connected to the RTC Wakeup event */
mbed_official 354:e67efb2aab0e 488
mbed_official 354:e67efb2aab0e 489 /**
mbed_official 354:e67efb2aab0e 490 * @brief Enable the RTC Exti line.
mbed_official 354:e67efb2aab0e 491 * @param __EXTILINE__: specifies the RTC Exti sources to be enabled or disabled.
mbed_official 354:e67efb2aab0e 492 * This parameter can be:
mbed_official 354:e67efb2aab0e 493 * @arg RTC_EXTI_LINE_ALARM_EVENT
mbed_official 354:e67efb2aab0e 494 * @arg RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT
mbed_official 354:e67efb2aab0e 495 * @arg RTC_EXTI_LINE_WAKEUPTIMER_EVENT
mbed_official 354:e67efb2aab0e 496 * @retval None
mbed_official 354:e67efb2aab0e 497 */
mbed_official 354:e67efb2aab0e 498 #define __HAL_RTC_EXTI_ENABLE_IT(__EXTILINE__) (EXTI->IMR |= (__EXTILINE__))
mbed_official 354:e67efb2aab0e 499
mbed_official 354:e67efb2aab0e 500 /* alias define maintained for legacy */
mbed_official 354:e67efb2aab0e 501 #define __HAL_RTC_ENABLE_IT __HAL_RTC_EXTI_ENABLE_IT
mbed_official 354:e67efb2aab0e 502
mbed_official 354:e67efb2aab0e 503 /**
mbed_official 354:e67efb2aab0e 504 * @brief Disable the RTC Exti line.
mbed_official 354:e67efb2aab0e 505 * @param __EXTILINE__: specifies the RTC Exti sources to be enabled or disabled.
mbed_official 354:e67efb2aab0e 506 * This parameter can be:
mbed_official 354:e67efb2aab0e 507 * @arg RTC_EXTI_LINE_ALARM_EVENT
mbed_official 354:e67efb2aab0e 508 * @arg RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT
mbed_official 354:e67efb2aab0e 509 * @arg RTC_EXTI_LINE_WAKEUPTIMER_EVENT
mbed_official 354:e67efb2aab0e 510 * @retval None
mbed_official 354:e67efb2aab0e 511 */
mbed_official 354:e67efb2aab0e 512 #define __HAL_RTC_EXTI_DISABLE_IT(__EXTILINE__) (EXTI->IMR &= ~(__EXTILINE__))
mbed_official 354:e67efb2aab0e 513
mbed_official 354:e67efb2aab0e 514 /* alias define maintained for legacy */
mbed_official 354:e67efb2aab0e 515 #define __HAL_RTC_DISABLE_IT __HAL_RTC_EXTI_DISABLE_IT
mbed_official 354:e67efb2aab0e 516
mbed_official 354:e67efb2aab0e 517 /**
mbed_official 354:e67efb2aab0e 518 * @brief Generates a Software interrupt on selected EXTI line.
mbed_official 354:e67efb2aab0e 519 * @param __EXTILINE__: specifies the RTC Exti sources to be enabled or disabled.
mbed_official 354:e67efb2aab0e 520 * This parameter can be:
mbed_official 354:e67efb2aab0e 521 * @arg RTC_EXTI_LINE_ALARM_EVENT
mbed_official 354:e67efb2aab0e 522 * @arg RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT
mbed_official 354:e67efb2aab0e 523 * @arg RTC_EXTI_LINE_WAKEUPTIMER_EVENT
mbed_official 354:e67efb2aab0e 524 * @retval None
mbed_official 354:e67efb2aab0e 525 */
mbed_official 354:e67efb2aab0e 526 #define __HAL_RTC_EXTI_GENERATE_SWIT(__EXTILINE__) (EXTI->SWIER |= (__EXTILINE__))
mbed_official 354:e67efb2aab0e 527
mbed_official 354:e67efb2aab0e 528 /**
mbed_official 354:e67efb2aab0e 529 * @brief Clear the RTC Exti flags.
mbed_official 354:e67efb2aab0e 530 * @param __FLAG__: specifies the RTC Exti sources to be enabled or disabled.
mbed_official 354:e67efb2aab0e 531 * This parameter can be:
mbed_official 354:e67efb2aab0e 532 * @arg RTC_EXTI_LINE_ALARM_EVENT
mbed_official 354:e67efb2aab0e 533 * @arg RTC_EXTI_LINE_TAMPER_TIMESTAMP_EVENT
mbed_official 354:e67efb2aab0e 534 * @arg RTC_EXTI_LINE_WAKEUPTIMER_EVENT
mbed_official 354:e67efb2aab0e 535 * @retval None
mbed_official 354:e67efb2aab0e 536 */
mbed_official 354:e67efb2aab0e 537 #define __HAL_RTC_EXTI_CLEAR_FLAG(__FLAG__) (EXTI->PR = (__FLAG__))
mbed_official 354:e67efb2aab0e 538
mbed_official 354:e67efb2aab0e 539 /* alias define maintained for legacy */
mbed_official 354:e67efb2aab0e 540 #define __HAL_RTC_CLEAR_FLAG __HAL_RTC_EXTI_CLEAR_FLAG
mbed_official 354:e67efb2aab0e 541
mbed_official 354:e67efb2aab0e 542 /**
mbed_official 354:e67efb2aab0e 543 * @}
mbed_official 354:e67efb2aab0e 544 */
mbed_official 354:e67efb2aab0e 545
mbed_official 354:e67efb2aab0e 546 /* Include RTC HAL Extension module */
mbed_official 354:e67efb2aab0e 547 #include "stm32l1xx_hal_rtc_ex.h"
mbed_official 354:e67efb2aab0e 548
mbed_official 354:e67efb2aab0e 549 /* Exported functions --------------------------------------------------------*/
mbed_official 354:e67efb2aab0e 550 /** @addtogroup RTC_Exported_Functions
mbed_official 354:e67efb2aab0e 551 * @{
mbed_official 354:e67efb2aab0e 552 */
mbed_official 354:e67efb2aab0e 553
mbed_official 354:e67efb2aab0e 554
mbed_official 354:e67efb2aab0e 555 /* Initialization and de-initialization functions ****************************/
mbed_official 354:e67efb2aab0e 556 /** @addtogroup RTC_Exported_Functions_Group1
mbed_official 354:e67efb2aab0e 557 * @{
mbed_official 354:e67efb2aab0e 558 */
mbed_official 354:e67efb2aab0e 559 HAL_StatusTypeDef HAL_RTC_Init(RTC_HandleTypeDef *hrtc);
mbed_official 354:e67efb2aab0e 560 HAL_StatusTypeDef HAL_RTC_DeInit(RTC_HandleTypeDef *hrtc);
mbed_official 354:e67efb2aab0e 561 void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc);
mbed_official 354:e67efb2aab0e 562 void HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc);
mbed_official 354:e67efb2aab0e 563 /**
mbed_official 354:e67efb2aab0e 564 * @}
mbed_official 354:e67efb2aab0e 565 */
mbed_official 354:e67efb2aab0e 566
mbed_official 354:e67efb2aab0e 567 /* RTC Time and Date functions ************************************************/
mbed_official 354:e67efb2aab0e 568 /** @addtogroup RTC_Exported_Functions_Group1
mbed_official 354:e67efb2aab0e 569 * @{
mbed_official 354:e67efb2aab0e 570 */
mbed_official 354:e67efb2aab0e 571 HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format);
mbed_official 354:e67efb2aab0e 572 HAL_StatusTypeDef HAL_RTC_GetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format);
mbed_official 354:e67efb2aab0e 573 HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format);
mbed_official 354:e67efb2aab0e 574 HAL_StatusTypeDef HAL_RTC_GetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format);
mbed_official 354:e67efb2aab0e 575 /**
mbed_official 354:e67efb2aab0e 576 * @}
mbed_official 354:e67efb2aab0e 577 */
mbed_official 354:e67efb2aab0e 578
mbed_official 354:e67efb2aab0e 579 /* RTC Alarm functions ********************************************************/
mbed_official 354:e67efb2aab0e 580 /** @addtogroup RTC_Exported_Functions_Group2
mbed_official 354:e67efb2aab0e 581 * @{
mbed_official 354:e67efb2aab0e 582 */
mbed_official 354:e67efb2aab0e 583 HAL_StatusTypeDef HAL_RTC_SetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format);
mbed_official 354:e67efb2aab0e 584 HAL_StatusTypeDef HAL_RTC_SetAlarm_IT(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format);
mbed_official 354:e67efb2aab0e 585 HAL_StatusTypeDef HAL_RTC_DeactivateAlarm(RTC_HandleTypeDef *hrtc, uint32_t Alarm);
mbed_official 354:e67efb2aab0e 586 HAL_StatusTypeDef HAL_RTC_GetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Alarm, uint32_t Format);
mbed_official 354:e67efb2aab0e 587 void HAL_RTC_AlarmIRQHandler(RTC_HandleTypeDef *hrtc);
mbed_official 354:e67efb2aab0e 588 HAL_StatusTypeDef HAL_RTC_PollForAlarmAEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
mbed_official 354:e67efb2aab0e 589 void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc);
mbed_official 354:e67efb2aab0e 590 /**
mbed_official 354:e67efb2aab0e 591 * @}
mbed_official 354:e67efb2aab0e 592 */
mbed_official 354:e67efb2aab0e 593
mbed_official 354:e67efb2aab0e 594 /* Peripheral Control functions ***********************************************/
mbed_official 354:e67efb2aab0e 595 /** @addtogroup RTC_Exported_Functions_Group3
mbed_official 354:e67efb2aab0e 596 * @{
mbed_official 354:e67efb2aab0e 597 */
mbed_official 354:e67efb2aab0e 598 HAL_StatusTypeDef HAL_RTC_WaitForSynchro(RTC_HandleTypeDef* hrtc);
mbed_official 354:e67efb2aab0e 599 /**
mbed_official 354:e67efb2aab0e 600 * @}
mbed_official 354:e67efb2aab0e 601 */
mbed_official 354:e67efb2aab0e 602
mbed_official 354:e67efb2aab0e 603 /* Peripheral State functions *************************************************/
mbed_official 354:e67efb2aab0e 604 /** @addtogroup RTC_Exported_Functions_Group5
mbed_official 354:e67efb2aab0e 605 * @{
mbed_official 354:e67efb2aab0e 606 */
mbed_official 354:e67efb2aab0e 607 HAL_RTCStateTypeDef HAL_RTC_GetState(RTC_HandleTypeDef *hrtc);
mbed_official 354:e67efb2aab0e 608 /**
mbed_official 354:e67efb2aab0e 609 * @}
mbed_official 354:e67efb2aab0e 610 */
mbed_official 354:e67efb2aab0e 611
mbed_official 354:e67efb2aab0e 612 /**
mbed_official 354:e67efb2aab0e 613 * @}
mbed_official 354:e67efb2aab0e 614 */
mbed_official 354:e67efb2aab0e 615 /* Private functions **********************************************************/
mbed_official 354:e67efb2aab0e 616 /** @addtogroup RTC_Internal_Functions
mbed_official 354:e67efb2aab0e 617 * @{
mbed_official 354:e67efb2aab0e 618 */
mbed_official 354:e67efb2aab0e 619 HAL_StatusTypeDef RTC_EnterInitMode(RTC_HandleTypeDef* hrtc);
mbed_official 354:e67efb2aab0e 620 uint8_t RTC_ByteToBcd2(uint8_t Value);
mbed_official 354:e67efb2aab0e 621 uint8_t RTC_Bcd2ToByte(uint8_t Value);
mbed_official 354:e67efb2aab0e 622
mbed_official 354:e67efb2aab0e 623 /**
mbed_official 354:e67efb2aab0e 624 * @}
mbed_official 354:e67efb2aab0e 625 */
mbed_official 354:e67efb2aab0e 626
mbed_official 354:e67efb2aab0e 627 /**
mbed_official 354:e67efb2aab0e 628 * @}
mbed_official 354:e67efb2aab0e 629 */
mbed_official 354:e67efb2aab0e 630
mbed_official 354:e67efb2aab0e 631 /**
mbed_official 354:e67efb2aab0e 632 * @}
mbed_official 354:e67efb2aab0e 633 */
mbed_official 354:e67efb2aab0e 634
mbed_official 354:e67efb2aab0e 635 #ifdef __cplusplus
mbed_official 354:e67efb2aab0e 636 }
mbed_official 354:e67efb2aab0e 637 #endif
mbed_official 354:e67efb2aab0e 638
mbed_official 354:e67efb2aab0e 639 #endif /* __STM32L1xx_HAL_RTC_H */
mbed_official 354:e67efb2aab0e 640
mbed_official 354:e67efb2aab0e 641 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/