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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

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

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 143:86740a56073b 1 /**
AnnaBridge 143:86740a56073b 2 ******************************************************************************
AnnaBridge 143:86740a56073b 3 * @file stm32f1xx_ll_rtc.h
AnnaBridge 143:86740a56073b 4 * @author MCD Application Team
AnnaBridge 143:86740a56073b 5 * @brief Header file of RTC LL module.
AnnaBridge 143:86740a56073b 6 ******************************************************************************
AnnaBridge 143:86740a56073b 7 * @attention
AnnaBridge 143:86740a56073b 8 *
AnnaBridge 143:86740a56073b 9 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 143:86740a56073b 10 *
AnnaBridge 143:86740a56073b 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 143:86740a56073b 12 * are permitted provided that the following conditions are met:
AnnaBridge 143:86740a56073b 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 143:86740a56073b 14 * this list of conditions and the following disclaimer.
AnnaBridge 143:86740a56073b 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 143:86740a56073b 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 143:86740a56073b 17 * and/or other materials provided with the distribution.
AnnaBridge 143:86740a56073b 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 143:86740a56073b 19 * may be used to endorse or promote products derived from this software
AnnaBridge 143:86740a56073b 20 * without specific prior written permission.
AnnaBridge 143:86740a56073b 21 *
AnnaBridge 143:86740a56073b 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 143:86740a56073b 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 143:86740a56073b 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 143:86740a56073b 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 143:86740a56073b 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 143:86740a56073b 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 143:86740a56073b 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 143:86740a56073b 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 143:86740a56073b 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 143:86740a56073b 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 143:86740a56073b 32 *
AnnaBridge 143:86740a56073b 33 ******************************************************************************
AnnaBridge 143:86740a56073b 34 */
AnnaBridge 143:86740a56073b 35
AnnaBridge 143:86740a56073b 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 143:86740a56073b 37 #ifndef __STM32F1xx_LL_RTC_H
AnnaBridge 143:86740a56073b 38 #define __STM32F1xx_LL_RTC_H
AnnaBridge 143:86740a56073b 39
AnnaBridge 143:86740a56073b 40 #ifdef __cplusplus
AnnaBridge 143:86740a56073b 41 extern "C" {
AnnaBridge 143:86740a56073b 42 #endif
AnnaBridge 143:86740a56073b 43
AnnaBridge 143:86740a56073b 44 /* Includes ------------------------------------------------------------------*/
AnnaBridge 143:86740a56073b 45 #include "stm32f1xx.h"
AnnaBridge 143:86740a56073b 46
AnnaBridge 143:86740a56073b 47 /** @addtogroup STM32F1xx_LL_Driver
AnnaBridge 143:86740a56073b 48 * @{
AnnaBridge 143:86740a56073b 49 */
AnnaBridge 143:86740a56073b 50
AnnaBridge 143:86740a56073b 51 #if defined(RTC)
AnnaBridge 143:86740a56073b 52
AnnaBridge 143:86740a56073b 53 /** @defgroup RTC_LL RTC
AnnaBridge 143:86740a56073b 54 * @{
AnnaBridge 143:86740a56073b 55 */
AnnaBridge 143:86740a56073b 56
AnnaBridge 143:86740a56073b 57 /* Private types -------------------------------------------------------------*/
AnnaBridge 143:86740a56073b 58 /* Private variables ---------------------------------------------------------*/
AnnaBridge 143:86740a56073b 59 /* Private constants ---------------------------------------------------------*/
AnnaBridge 143:86740a56073b 60
AnnaBridge 143:86740a56073b 61 /* Private macros ------------------------------------------------------------*/
AnnaBridge 143:86740a56073b 62 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 143:86740a56073b 63 /** @defgroup RTC_LL_Private_Macros RTC Private Macros
AnnaBridge 143:86740a56073b 64 * @{
AnnaBridge 143:86740a56073b 65 */
AnnaBridge 143:86740a56073b 66 /**
AnnaBridge 143:86740a56073b 67 * @}
AnnaBridge 143:86740a56073b 68 */
AnnaBridge 143:86740a56073b 69 #endif /*USE_FULL_LL_DRIVER*/
AnnaBridge 143:86740a56073b 70
AnnaBridge 143:86740a56073b 71 /* Exported types ------------------------------------------------------------*/
AnnaBridge 143:86740a56073b 72 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 143:86740a56073b 73 /** @defgroup RTC_LL_ES_INIT RTC Exported Init structure
AnnaBridge 143:86740a56073b 74 * @{
AnnaBridge 143:86740a56073b 75 */
AnnaBridge 143:86740a56073b 76
AnnaBridge 143:86740a56073b 77 /**
AnnaBridge 143:86740a56073b 78 * @brief RTC Init structures definition
AnnaBridge 143:86740a56073b 79 */
AnnaBridge 143:86740a56073b 80 typedef struct
AnnaBridge 143:86740a56073b 81 {
AnnaBridge 143:86740a56073b 82 uint32_t AsynchPrescaler; /*!< Specifies the RTC Asynchronous Predivider value.
AnnaBridge 143:86740a56073b 83 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFFFFF
AnnaBridge 143:86740a56073b 84
AnnaBridge 143:86740a56073b 85 This feature can be modified afterwards using unitary function
AnnaBridge 143:86740a56073b 86 @ref LL_RTC_SetAsynchPrescaler(). */
AnnaBridge 143:86740a56073b 87
AnnaBridge 143:86740a56073b 88 uint32_t OutPutSource; /*!< Specifies which signal will be routed to the RTC Tamper pin.
AnnaBridge 143:86740a56073b 89 This parameter can be a value of @ref LL_RTC_Output_Source
AnnaBridge 143:86740a56073b 90
AnnaBridge 143:86740a56073b 91 This feature can be modified afterwards using unitary function
AnnaBridge 143:86740a56073b 92 @ref LL_RTC_SetOutputSource(). */
AnnaBridge 143:86740a56073b 93
AnnaBridge 143:86740a56073b 94 } LL_RTC_InitTypeDef;
AnnaBridge 143:86740a56073b 95
AnnaBridge 143:86740a56073b 96 /**
AnnaBridge 143:86740a56073b 97 * @brief RTC Time structure definition
AnnaBridge 143:86740a56073b 98 */
AnnaBridge 143:86740a56073b 99 typedef struct
AnnaBridge 143:86740a56073b 100 {
AnnaBridge 143:86740a56073b 101 uint8_t Hours; /*!< Specifies the RTC Time Hours.
AnnaBridge 143:86740a56073b 102 This parameter must be a number between Min_Data = 0 and Max_Data = 23 */
AnnaBridge 143:86740a56073b 103
AnnaBridge 143:86740a56073b 104 uint8_t Minutes; /*!< Specifies the RTC Time Minutes.
AnnaBridge 143:86740a56073b 105 This parameter must be a number between Min_Data = 0 and Max_Data = 59 */
AnnaBridge 143:86740a56073b 106
AnnaBridge 143:86740a56073b 107 uint8_t Seconds; /*!< Specifies the RTC Time Seconds.
AnnaBridge 143:86740a56073b 108 This parameter must be a number between Min_Data = 0 and Max_Data = 59 */
AnnaBridge 143:86740a56073b 109 } LL_RTC_TimeTypeDef;
AnnaBridge 143:86740a56073b 110
AnnaBridge 143:86740a56073b 111
AnnaBridge 143:86740a56073b 112 /**
AnnaBridge 143:86740a56073b 113 * @brief RTC Alarm structure definition
AnnaBridge 143:86740a56073b 114 */
AnnaBridge 143:86740a56073b 115 typedef struct
AnnaBridge 143:86740a56073b 116 {
AnnaBridge 143:86740a56073b 117 LL_RTC_TimeTypeDef AlarmTime; /*!< Specifies the RTC Alarm Time members. */
AnnaBridge 143:86740a56073b 118
AnnaBridge 143:86740a56073b 119 } LL_RTC_AlarmTypeDef;
AnnaBridge 143:86740a56073b 120
AnnaBridge 143:86740a56073b 121 /**
AnnaBridge 143:86740a56073b 122 * @}
AnnaBridge 143:86740a56073b 123 */
AnnaBridge 143:86740a56073b 124 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 143:86740a56073b 125
AnnaBridge 143:86740a56073b 126 /* Exported constants --------------------------------------------------------*/
AnnaBridge 143:86740a56073b 127 /** @defgroup RTC_LL_Exported_Constants RTC Exported Constants
AnnaBridge 143:86740a56073b 128 * @{
AnnaBridge 143:86740a56073b 129 */
AnnaBridge 143:86740a56073b 130
AnnaBridge 143:86740a56073b 131 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 143:86740a56073b 132 /** @defgroup RTC_LL_EC_FORMAT FORMAT
AnnaBridge 143:86740a56073b 133 * @{
AnnaBridge 143:86740a56073b 134 */
AnnaBridge 143:86740a56073b 135 #define LL_RTC_FORMAT_BIN (0x000000000U) /*!< Binary data format */
AnnaBridge 143:86740a56073b 136 #define LL_RTC_FORMAT_BCD (0x000000001U) /*!< BCD data format */
AnnaBridge 143:86740a56073b 137 /**
AnnaBridge 143:86740a56073b 138 * @}
AnnaBridge 143:86740a56073b 139 */
AnnaBridge 143:86740a56073b 140 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 143:86740a56073b 141
AnnaBridge 143:86740a56073b 142 /** @defgroup RTC_LL_EC_BKP BACKUP
AnnaBridge 143:86740a56073b 143 * @{
AnnaBridge 143:86740a56073b 144 */
AnnaBridge 143:86740a56073b 145 #if RTC_BKP_NUMBER > 0
AnnaBridge 143:86740a56073b 146 #define LL_RTC_BKP_DR1 (0x00000001U)
AnnaBridge 143:86740a56073b 147 #define LL_RTC_BKP_DR2 (0x00000002U)
AnnaBridge 143:86740a56073b 148 #define LL_RTC_BKP_DR3 (0x00000003U)
AnnaBridge 143:86740a56073b 149 #define LL_RTC_BKP_DR4 (0x00000004U)
AnnaBridge 143:86740a56073b 150 #define LL_RTC_BKP_DR5 (0x00000005U)
AnnaBridge 143:86740a56073b 151 #define LL_RTC_BKP_DR6 (0x00000006U)
AnnaBridge 143:86740a56073b 152 #define LL_RTC_BKP_DR7 (0x00000007U)
AnnaBridge 143:86740a56073b 153 #define LL_RTC_BKP_DR8 (0x00000008U)
AnnaBridge 143:86740a56073b 154 #define LL_RTC_BKP_DR9 (0x00000009U)
AnnaBridge 143:86740a56073b 155 #define LL_RTC_BKP_DR10 (0x0000000AU)
AnnaBridge 143:86740a56073b 156 #endif /* RTC_BKP_NUMBER > 0 */
AnnaBridge 143:86740a56073b 157 #if RTC_BKP_NUMBER > 10
AnnaBridge 143:86740a56073b 158 #define LL_RTC_BKP_DR11 (0x0000000BU)
AnnaBridge 143:86740a56073b 159 #define LL_RTC_BKP_DR12 (0x0000000CU)
AnnaBridge 143:86740a56073b 160 #define LL_RTC_BKP_DR13 (0x0000000DU)
AnnaBridge 143:86740a56073b 161 #define LL_RTC_BKP_DR14 (0x0000000EU)
AnnaBridge 143:86740a56073b 162 #define LL_RTC_BKP_DR15 (0x0000000FU)
AnnaBridge 143:86740a56073b 163 #define LL_RTC_BKP_DR16 (0x00000010U)
AnnaBridge 143:86740a56073b 164 #define LL_RTC_BKP_DR17 (0x00000011U)
AnnaBridge 143:86740a56073b 165 #define LL_RTC_BKP_DR18 (0x00000012U)
AnnaBridge 143:86740a56073b 166 #define LL_RTC_BKP_DR19 (0x00000013U)
AnnaBridge 143:86740a56073b 167 #define LL_RTC_BKP_DR20 (0x00000014U)
AnnaBridge 143:86740a56073b 168 #define LL_RTC_BKP_DR21 (0x00000015U)
AnnaBridge 143:86740a56073b 169 #define LL_RTC_BKP_DR22 (0x00000016U)
AnnaBridge 143:86740a56073b 170 #define LL_RTC_BKP_DR23 (0x00000017U)
AnnaBridge 143:86740a56073b 171 #define LL_RTC_BKP_DR24 (0x00000018U)
AnnaBridge 143:86740a56073b 172 #define LL_RTC_BKP_DR25 (0x00000019U)
AnnaBridge 143:86740a56073b 173 #define LL_RTC_BKP_DR26 (0x0000001AU)
AnnaBridge 143:86740a56073b 174 #define LL_RTC_BKP_DR27 (0x0000001BU)
AnnaBridge 143:86740a56073b 175 #define LL_RTC_BKP_DR28 (0x0000001CU)
AnnaBridge 143:86740a56073b 176 #define LL_RTC_BKP_DR29 (0x0000001DU)
AnnaBridge 143:86740a56073b 177 #define LL_RTC_BKP_DR30 (0x0000001EU)
AnnaBridge 143:86740a56073b 178 #define LL_RTC_BKP_DR31 (0x0000001FU)
AnnaBridge 143:86740a56073b 179 #define LL_RTC_BKP_DR32 (0x00000020U)
AnnaBridge 143:86740a56073b 180 #define LL_RTC_BKP_DR33 (0x00000021U)
AnnaBridge 143:86740a56073b 181 #define LL_RTC_BKP_DR34 (0x00000022U)
AnnaBridge 143:86740a56073b 182 #define LL_RTC_BKP_DR35 (0x00000023U)
AnnaBridge 143:86740a56073b 183 #define LL_RTC_BKP_DR36 (0x00000024U)
AnnaBridge 143:86740a56073b 184 #define LL_RTC_BKP_DR37 (0x00000025U)
AnnaBridge 143:86740a56073b 185 #define LL_RTC_BKP_DR38 (0x00000026U)
AnnaBridge 143:86740a56073b 186 #define LL_RTC_BKP_DR39 (0x00000027U)
AnnaBridge 143:86740a56073b 187 #define LL_RTC_BKP_DR40 (0x00000028U)
AnnaBridge 143:86740a56073b 188 #define LL_RTC_BKP_DR41 (0x00000029U)
AnnaBridge 143:86740a56073b 189 #define LL_RTC_BKP_DR42 (0x0000002AU)
AnnaBridge 143:86740a56073b 190 #endif /* RTC_BKP_NUMBER > 10 */
AnnaBridge 143:86740a56073b 191
AnnaBridge 143:86740a56073b 192 /**
AnnaBridge 143:86740a56073b 193 * @}
AnnaBridge 143:86740a56073b 194 */
AnnaBridge 143:86740a56073b 195
AnnaBridge 143:86740a56073b 196 /** @defgroup RTC_LL_EC_TAMPLEVEL Tamper Active Level
AnnaBridge 143:86740a56073b 197 * @{
AnnaBridge 143:86740a56073b 198 */
AnnaBridge 143:86740a56073b 199 #define LL_RTC_TAMPER_ACTIVELEVEL_LOW BKP_CR_TPAL /*!< A high level on the TAMPER pin resets all data backup registers (if TPE bit is set) */
AnnaBridge 143:86740a56073b 200 #define LL_RTC_TAMPER_ACTIVELEVEL_HIGH (0x00000000U) /*!< A low level on the TAMPER pin resets all data backup registers (if TPE bit is set) */
AnnaBridge 143:86740a56073b 201
AnnaBridge 143:86740a56073b 202 /**
AnnaBridge 143:86740a56073b 203 * @}
AnnaBridge 143:86740a56073b 204 */
AnnaBridge 143:86740a56073b 205
AnnaBridge 143:86740a56073b 206 /** @defgroup LL_RTC_Output_Source Clock Source to output on the Tamper Pin
AnnaBridge 143:86740a56073b 207 * @{
AnnaBridge 143:86740a56073b 208 */
AnnaBridge 143:86740a56073b 209 #define LL_RTC_CALIB_OUTPUT_NONE (0x00000000U) /*!< Calibration output disabled */
AnnaBridge 143:86740a56073b 210 #define LL_RTC_CALIB_OUTPUT_RTCCLOCK BKP_RTCCR_CCO /*!< Calibration output is RTC Clock with a frequency divided by 64 on the TAMPER Pin */
AnnaBridge 143:86740a56073b 211 #define LL_RTC_CALIB_OUTPUT_ALARM BKP_RTCCR_ASOE /*!< Calibration output is Alarm pulse signal on the TAMPER pin */
AnnaBridge 143:86740a56073b 212 #define LL_RTC_CALIB_OUTPUT_SECOND (BKP_RTCCR_ASOS | BKP_RTCCR_ASOE) /*!< Calibration output is Second pulse signal on the TAMPER pin*/
AnnaBridge 143:86740a56073b 213 /**
AnnaBridge 143:86740a56073b 214 * @}
AnnaBridge 143:86740a56073b 215 */
AnnaBridge 143:86740a56073b 216
AnnaBridge 143:86740a56073b 217 /**
AnnaBridge 143:86740a56073b 218 * @}
AnnaBridge 143:86740a56073b 219 */
AnnaBridge 143:86740a56073b 220
AnnaBridge 143:86740a56073b 221 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 143:86740a56073b 222 /** @defgroup RTC_LL_Exported_Macros RTC Exported Macros
AnnaBridge 143:86740a56073b 223 * @{
AnnaBridge 143:86740a56073b 224 */
AnnaBridge 143:86740a56073b 225
AnnaBridge 143:86740a56073b 226 /** @defgroup RTC_LL_EM_WRITE_READ Common Write and read registers Macros
AnnaBridge 143:86740a56073b 227 * @{
AnnaBridge 143:86740a56073b 228 */
AnnaBridge 143:86740a56073b 229
AnnaBridge 143:86740a56073b 230 /**
AnnaBridge 143:86740a56073b 231 * @brief Write a value in RTC register
AnnaBridge 143:86740a56073b 232 * @param __INSTANCE__ RTC Instance
AnnaBridge 143:86740a56073b 233 * @param __REG__ Register to be written
AnnaBridge 143:86740a56073b 234 * @param __VALUE__ Value to be written in the register
AnnaBridge 143:86740a56073b 235 * @retval None
AnnaBridge 143:86740a56073b 236 */
AnnaBridge 143:86740a56073b 237 #define LL_RTC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
AnnaBridge 143:86740a56073b 238
AnnaBridge 143:86740a56073b 239 /**
AnnaBridge 143:86740a56073b 240 * @brief Read a value in RTC register
AnnaBridge 143:86740a56073b 241 * @param __INSTANCE__ RTC Instance
AnnaBridge 143:86740a56073b 242 * @param __REG__ Register to be read
AnnaBridge 143:86740a56073b 243 * @retval Register value
AnnaBridge 143:86740a56073b 244 */
AnnaBridge 143:86740a56073b 245 #define LL_RTC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
AnnaBridge 143:86740a56073b 246 /**
AnnaBridge 143:86740a56073b 247 * @}
AnnaBridge 143:86740a56073b 248 */
AnnaBridge 143:86740a56073b 249
AnnaBridge 143:86740a56073b 250 /** @defgroup RTC_LL_EM_Convert Convert helper Macros
AnnaBridge 143:86740a56073b 251 * @{
AnnaBridge 143:86740a56073b 252 */
AnnaBridge 143:86740a56073b 253
AnnaBridge 143:86740a56073b 254 /**
AnnaBridge 143:86740a56073b 255 * @brief Helper macro to convert a value from 2 digit decimal format to BCD format
AnnaBridge 143:86740a56073b 256 * @param __VALUE__ Byte to be converted
AnnaBridge 143:86740a56073b 257 * @retval Converted byte
AnnaBridge 143:86740a56073b 258 */
AnnaBridge 143:86740a56073b 259 #define __LL_RTC_CONVERT_BIN2BCD(__VALUE__) (uint8_t)((((__VALUE__) / 10U) << 4U) | ((__VALUE__) % 10U))
AnnaBridge 143:86740a56073b 260
AnnaBridge 143:86740a56073b 261 /**
AnnaBridge 143:86740a56073b 262 * @brief Helper macro to convert a value from BCD format to 2 digit decimal format
AnnaBridge 143:86740a56073b 263 * @param __VALUE__ BCD value to be converted
AnnaBridge 143:86740a56073b 264 * @retval Converted byte
AnnaBridge 143:86740a56073b 265 */
AnnaBridge 143:86740a56073b 266 #define __LL_RTC_CONVERT_BCD2BIN(__VALUE__) (uint8_t)(((uint8_t)((__VALUE__) & (uint8_t)0xF0U) >> (uint8_t)0x4U) * 10U + ((__VALUE__) & (uint8_t)0x0FU))
AnnaBridge 143:86740a56073b 267
AnnaBridge 143:86740a56073b 268 /**
AnnaBridge 143:86740a56073b 269 * @}
AnnaBridge 143:86740a56073b 270 */
AnnaBridge 143:86740a56073b 271
AnnaBridge 143:86740a56073b 272 /**
AnnaBridge 143:86740a56073b 273 * @}
AnnaBridge 143:86740a56073b 274 */
AnnaBridge 143:86740a56073b 275
AnnaBridge 143:86740a56073b 276 /* Exported functions --------------------------------------------------------*/
AnnaBridge 143:86740a56073b 277 /** @defgroup RTC_LL_Exported_Functions RTC Exported Functions
AnnaBridge 143:86740a56073b 278 * @{
AnnaBridge 143:86740a56073b 279 */
AnnaBridge 143:86740a56073b 280
AnnaBridge 143:86740a56073b 281 /** @defgroup RTC_LL_EF_Configuration Configuration
AnnaBridge 143:86740a56073b 282 * @{
AnnaBridge 143:86740a56073b 283 */
AnnaBridge 143:86740a56073b 284
AnnaBridge 143:86740a56073b 285 /**
AnnaBridge 143:86740a56073b 286 * @brief Set Asynchronous prescaler factor
AnnaBridge 143:86740a56073b 287 * @rmtoll PRLH PRL LL_RTC_SetAsynchPrescaler\n
AnnaBridge 143:86740a56073b 288 * @rmtoll PRLL PRL LL_RTC_SetAsynchPrescaler\n
AnnaBridge 143:86740a56073b 289 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 290 * @param AsynchPrescaler Value between Min_Data = 0 and Max_Data = 0xFFFFF
AnnaBridge 143:86740a56073b 291 * @retval None
AnnaBridge 143:86740a56073b 292 */
AnnaBridge 143:86740a56073b 293 __STATIC_INLINE void LL_RTC_SetAsynchPrescaler(RTC_TypeDef *RTCx, uint32_t AsynchPrescaler)
AnnaBridge 143:86740a56073b 294 {
AnnaBridge 143:86740a56073b 295 MODIFY_REG(RTCx->PRLH, RTC_PRLH_PRL, (AsynchPrescaler >> 16));
AnnaBridge 143:86740a56073b 296 MODIFY_REG(RTCx->PRLL, RTC_PRLL_PRL, (AsynchPrescaler & RTC_PRLL_PRL));
AnnaBridge 143:86740a56073b 297 }
AnnaBridge 143:86740a56073b 298
AnnaBridge 143:86740a56073b 299 /**
AnnaBridge 143:86740a56073b 300 * @brief Get Asynchronous prescaler factor
AnnaBridge 143:86740a56073b 301 * @rmtoll DIVH DIV LL_RTC_GetDivider\n
AnnaBridge 143:86740a56073b 302 * @rmtoll DIVL DIV LL_RTC_GetDivider\n
AnnaBridge 143:86740a56073b 303 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 304 * @retval Value between Min_Data = 0 and Max_Data = 0xFFFFF
AnnaBridge 143:86740a56073b 305 */
AnnaBridge 143:86740a56073b 306 __STATIC_INLINE uint32_t LL_RTC_GetDivider(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 307 {
AnnaBridge 143:86740a56073b 308 register uint16_t Highprescaler = 0 , Lowprescaler = 0;
AnnaBridge 143:86740a56073b 309 Highprescaler = READ_REG(RTCx->DIVH & RTC_DIVH_RTC_DIV);
AnnaBridge 143:86740a56073b 310 Lowprescaler = READ_REG(RTCx->DIVL & RTC_DIVL_RTC_DIV);
AnnaBridge 143:86740a56073b 311
AnnaBridge 143:86740a56073b 312 return (((uint32_t) Highprescaler << 16U) | Lowprescaler);
AnnaBridge 143:86740a56073b 313 }
AnnaBridge 143:86740a56073b 314
AnnaBridge 143:86740a56073b 315 /**
AnnaBridge 143:86740a56073b 316 * @brief Set Output Source
AnnaBridge 143:86740a56073b 317 * @rmtoll RTCCR CCO LL_RTC_SetOutputSource
AnnaBridge 143:86740a56073b 318 * @rmtoll RTCCR ASOE LL_RTC_SetOutputSource
AnnaBridge 143:86740a56073b 319 * @rmtoll RTCCR ASOS LL_RTC_SetOutputSource
AnnaBridge 143:86740a56073b 320 * @param BKPx BKP Instance
AnnaBridge 143:86740a56073b 321 * @param OutputSource This parameter can be one of the following values:
AnnaBridge 143:86740a56073b 322 * @arg @ref LL_RTC_CALIB_OUTPUT_NONE
AnnaBridge 143:86740a56073b 323 * @arg @ref LL_RTC_CALIB_OUTPUT_RTCCLOCK
AnnaBridge 143:86740a56073b 324 * @arg @ref LL_RTC_CALIB_OUTPUT_ALARM
AnnaBridge 143:86740a56073b 325 * @arg @ref LL_RTC_CALIB_OUTPUT_SECOND
AnnaBridge 143:86740a56073b 326 * @retval None
AnnaBridge 143:86740a56073b 327 */
AnnaBridge 143:86740a56073b 328 __STATIC_INLINE void LL_RTC_SetOutputSource(BKP_TypeDef *BKPx, uint32_t OutputSource)
AnnaBridge 143:86740a56073b 329 {
AnnaBridge 143:86740a56073b 330 MODIFY_REG(BKPx->RTCCR, (BKP_RTCCR_CCO | BKP_RTCCR_ASOE | BKP_RTCCR_ASOS), OutputSource);
AnnaBridge 143:86740a56073b 331 }
AnnaBridge 143:86740a56073b 332
AnnaBridge 143:86740a56073b 333 /**
AnnaBridge 143:86740a56073b 334 * @brief Get Output Source
AnnaBridge 143:86740a56073b 335 * @rmtoll RTCCR CCO LL_RTC_GetOutPutSource
AnnaBridge 143:86740a56073b 336 * @rmtoll RTCCR ASOE LL_RTC_GetOutPutSource
AnnaBridge 143:86740a56073b 337 * @rmtoll RTCCR ASOS LL_RTC_GetOutPutSource
AnnaBridge 143:86740a56073b 338 * @param BKPx BKP Instance
AnnaBridge 143:86740a56073b 339 * @retval Returned value can be one of the following values:
AnnaBridge 143:86740a56073b 340 * @arg @ref LL_RTC_CALIB_OUTPUT_NONE
AnnaBridge 143:86740a56073b 341 * @arg @ref LL_RTC_CALIB_OUTPUT_RTCCLOCK
AnnaBridge 143:86740a56073b 342 * @arg @ref LL_RTC_CALIB_OUTPUT_ALARM
AnnaBridge 143:86740a56073b 343 * @arg @ref LL_RTC_CALIB_OUTPUT_SECOND
AnnaBridge 143:86740a56073b 344 */
AnnaBridge 143:86740a56073b 345 __STATIC_INLINE uint32_t LL_RTC_GetOutPutSource(BKP_TypeDef *BKPx)
AnnaBridge 143:86740a56073b 346 {
AnnaBridge 143:86740a56073b 347 return (uint32_t)(READ_BIT(BKPx->RTCCR, (BKP_RTCCR_CCO | BKP_RTCCR_ASOE | BKP_RTCCR_ASOS)));
AnnaBridge 143:86740a56073b 348 }
AnnaBridge 143:86740a56073b 349
AnnaBridge 143:86740a56073b 350 /**
AnnaBridge 143:86740a56073b 351 * @brief Enable the write protection for RTC registers.
AnnaBridge 143:86740a56073b 352 * @rmtoll CRL CNF LL_RTC_EnableWriteProtection
AnnaBridge 143:86740a56073b 353 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 354 * @retval None
AnnaBridge 143:86740a56073b 355 */
AnnaBridge 143:86740a56073b 356 __STATIC_INLINE void LL_RTC_EnableWriteProtection(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 357 {
AnnaBridge 143:86740a56073b 358 CLEAR_BIT(RTCx->CRL, RTC_CRL_CNF);
AnnaBridge 143:86740a56073b 359 }
AnnaBridge 143:86740a56073b 360
AnnaBridge 143:86740a56073b 361 /**
AnnaBridge 143:86740a56073b 362 * @brief Disable the write protection for RTC registers.
AnnaBridge 143:86740a56073b 363 * @rmtoll CRL RTC_CRL_CNF LL_RTC_DisableWriteProtection
AnnaBridge 143:86740a56073b 364 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 365 * @retval None
AnnaBridge 143:86740a56073b 366 */
AnnaBridge 143:86740a56073b 367 __STATIC_INLINE void LL_RTC_DisableWriteProtection(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 368 {
AnnaBridge 143:86740a56073b 369 SET_BIT(RTCx->CRL, RTC_CRL_CNF);
AnnaBridge 143:86740a56073b 370 }
AnnaBridge 143:86740a56073b 371
AnnaBridge 143:86740a56073b 372 /**
AnnaBridge 143:86740a56073b 373 * @}
AnnaBridge 143:86740a56073b 374 */
AnnaBridge 143:86740a56073b 375
AnnaBridge 143:86740a56073b 376 /** @defgroup RTC_LL_EF_Time Time
AnnaBridge 143:86740a56073b 377 * @{
AnnaBridge 143:86740a56073b 378 */
AnnaBridge 143:86740a56073b 379
AnnaBridge 143:86740a56073b 380 /**
AnnaBridge 143:86740a56073b 381 * @brief Set time counter in BCD format
AnnaBridge 143:86740a56073b 382 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 143:86740a56073b 383 * @note It can be written in initialization mode only (@ref LL_RTC_EnterInitMode function)
AnnaBridge 143:86740a56073b 384 * @rmtoll CNTH CNT LL_RTC_TIME_Set\n
AnnaBridge 143:86740a56073b 385 * CNTL CNT LL_RTC_TIME_Set\n
AnnaBridge 143:86740a56073b 386 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 387 * @param TimeCounter Value between Min_Data=0x00 and Max_Data=0xFFFFF
AnnaBridge 143:86740a56073b 388 * @retval None
AnnaBridge 143:86740a56073b 389 */
AnnaBridge 143:86740a56073b 390 __STATIC_INLINE void LL_RTC_TIME_Set(RTC_TypeDef *RTCx, uint32_t TimeCounter)
AnnaBridge 143:86740a56073b 391 {
AnnaBridge 143:86740a56073b 392 /* Set RTC COUNTER MSB word */
AnnaBridge 143:86740a56073b 393 WRITE_REG(RTCx->CNTH, (TimeCounter >> 16U));
AnnaBridge 143:86740a56073b 394 /* Set RTC COUNTER LSB word */
AnnaBridge 143:86740a56073b 395 WRITE_REG(RTCx->CNTL, (TimeCounter & RTC_CNTL_RTC_CNT));
AnnaBridge 143:86740a56073b 396 }
AnnaBridge 143:86740a56073b 397
AnnaBridge 143:86740a56073b 398 /**
AnnaBridge 143:86740a56073b 399 * @brief Get time counter in BCD format
AnnaBridge 143:86740a56073b 400 * @rmtoll CNTH CNT LL_RTC_TIME_Get\n
AnnaBridge 143:86740a56073b 401 * CNTL CNT LL_RTC_TIME_Get\n
AnnaBridge 143:86740a56073b 402 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 403 * @retval Value between Min_Data = 0 and Max_Data = 0xFFFFF
AnnaBridge 143:86740a56073b 404 */
AnnaBridge 143:86740a56073b 405 __STATIC_INLINE uint32_t LL_RTC_TIME_Get(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 406 {
AnnaBridge 143:86740a56073b 407 register uint16_t high = 0, low = 0;
AnnaBridge 143:86740a56073b 408
AnnaBridge 143:86740a56073b 409 high = READ_REG(RTCx->CNTH & RTC_CNTH_RTC_CNT);
AnnaBridge 143:86740a56073b 410 low = READ_REG(RTCx->CNTL & RTC_CNTL_RTC_CNT);
AnnaBridge 143:86740a56073b 411 return ((uint32_t)(((uint32_t) high << 16U) | low));
AnnaBridge 143:86740a56073b 412 }
AnnaBridge 143:86740a56073b 413
AnnaBridge 143:86740a56073b 414 /**
AnnaBridge 143:86740a56073b 415 * @}
AnnaBridge 143:86740a56073b 416 */
AnnaBridge 143:86740a56073b 417
AnnaBridge 143:86740a56073b 418 /** @defgroup RTC_LL_EF_ALARM ALARM
AnnaBridge 143:86740a56073b 419 * @{
AnnaBridge 143:86740a56073b 420 */
AnnaBridge 143:86740a56073b 421
AnnaBridge 143:86740a56073b 422 /**
AnnaBridge 143:86740a56073b 423 * @brief Set Alarm Counter
AnnaBridge 143:86740a56073b 424 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 143:86740a56073b 425 * @rmtoll ALRH ALR LL_RTC_ALARM_Set\n
AnnaBridge 143:86740a56073b 426 * @rmtoll ALRL ALR LL_RTC_ALARM_Set\n
AnnaBridge 143:86740a56073b 427 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 428 * @param AlarmCounter Value between Min_Data=0x00 and Max_Data=0xFFFFF
AnnaBridge 143:86740a56073b 429 * @retval None
AnnaBridge 143:86740a56073b 430 */
AnnaBridge 143:86740a56073b 431 __STATIC_INLINE void LL_RTC_ALARM_Set(RTC_TypeDef *RTCx, uint32_t AlarmCounter)
AnnaBridge 143:86740a56073b 432 {
AnnaBridge 143:86740a56073b 433 /* Set RTC COUNTER MSB word */
AnnaBridge 143:86740a56073b 434 WRITE_REG(RTCx->ALRH, (AlarmCounter >> 16));
AnnaBridge 143:86740a56073b 435 /* Set RTC COUNTER LSB word */
AnnaBridge 143:86740a56073b 436 WRITE_REG(RTCx->ALRL, (AlarmCounter & RTC_ALRL_RTC_ALR));
AnnaBridge 143:86740a56073b 437 }
AnnaBridge 143:86740a56073b 438
AnnaBridge 143:86740a56073b 439 /**
AnnaBridge 143:86740a56073b 440 * @brief Get Alarm Counter
AnnaBridge 143:86740a56073b 441 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 143:86740a56073b 442 * @rmtoll ALRH ALR LL_RTC_ALARM_Get\n
AnnaBridge 143:86740a56073b 443 * @rmtoll ALRL ALR LL_RTC_ALARM_Get\n
AnnaBridge 143:86740a56073b 444 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 445 * @retval None
AnnaBridge 143:86740a56073b 446 */
AnnaBridge 143:86740a56073b 447 __STATIC_INLINE uint32_t LL_RTC_ALARM_Get(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 448 {
AnnaBridge 143:86740a56073b 449 register uint16_t high = 0, low = 0;
AnnaBridge 143:86740a56073b 450
AnnaBridge 143:86740a56073b 451 high = READ_REG(RTCx->ALRH & RTC_ALRH_RTC_ALR);
AnnaBridge 143:86740a56073b 452 low = READ_REG(RTCx->ALRL & RTC_ALRL_RTC_ALR);
AnnaBridge 143:86740a56073b 453
AnnaBridge 143:86740a56073b 454 return (((uint32_t) high << 16U) | low);
AnnaBridge 143:86740a56073b 455 }
AnnaBridge 143:86740a56073b 456
AnnaBridge 143:86740a56073b 457 /**
AnnaBridge 143:86740a56073b 458 * @}
AnnaBridge 143:86740a56073b 459 */
AnnaBridge 143:86740a56073b 460
AnnaBridge 143:86740a56073b 461 /** @defgroup RTC_LL_EF_Tamper Tamper
AnnaBridge 143:86740a56073b 462 * @{
AnnaBridge 143:86740a56073b 463 */
AnnaBridge 143:86740a56073b 464
AnnaBridge 143:86740a56073b 465 /**
AnnaBridge 143:86740a56073b 466 * @brief Enable RTC_TAMPx input detection
AnnaBridge 143:86740a56073b 467 * @rmtoll CR TPE LL_RTC_TAMPER_Enable\n
AnnaBridge 143:86740a56073b 468 * @retval None
AnnaBridge 143:86740a56073b 469 */
AnnaBridge 143:86740a56073b 470 __STATIC_INLINE void LL_RTC_TAMPER_Enable(BKP_TypeDef *BKPx)
AnnaBridge 143:86740a56073b 471 {
AnnaBridge 143:86740a56073b 472 SET_BIT(BKPx->CR, BKP_CR_TPE);
AnnaBridge 143:86740a56073b 473 }
AnnaBridge 143:86740a56073b 474
AnnaBridge 143:86740a56073b 475 /**
AnnaBridge 143:86740a56073b 476 * @brief Disable RTC_TAMPx Tamper
AnnaBridge 143:86740a56073b 477 * @rmtoll CR TPE LL_RTC_TAMPER_Disable\n
AnnaBridge 143:86740a56073b 478 * @retval None
AnnaBridge 143:86740a56073b 479 */
AnnaBridge 143:86740a56073b 480 __STATIC_INLINE void LL_RTC_TAMPER_Disable(BKP_TypeDef *BKPx)
AnnaBridge 143:86740a56073b 481 {
AnnaBridge 143:86740a56073b 482 CLEAR_BIT(BKP->CR, BKP_CR_TPE);
AnnaBridge 143:86740a56073b 483 }
AnnaBridge 143:86740a56073b 484
AnnaBridge 143:86740a56073b 485 /**
AnnaBridge 143:86740a56073b 486 * @brief Enable Active level for Tamper input
AnnaBridge 143:86740a56073b 487 * @rmtoll CR TPAL LL_RTC_TAMPER_SetActiveLevel\n
AnnaBridge 143:86740a56073b 488 * @param BKPx BKP Instance
AnnaBridge 143:86740a56073b 489 * @param Tamper This parameter can be a combination of the following values:
AnnaBridge 143:86740a56073b 490 * @arg @ref LL_RTC_TAMPER_ACTIVELEVEL_LOW
AnnaBridge 143:86740a56073b 491 * @arg @ref LL_RTC_TAMPER_ACTIVELEVEL_HIGH
AnnaBridge 143:86740a56073b 492 * @retval None
AnnaBridge 143:86740a56073b 493 */
AnnaBridge 143:86740a56073b 494 __STATIC_INLINE void LL_RTC_TAMPER_SetActiveLevel(BKP_TypeDef *BKPx, uint32_t Tamper)
AnnaBridge 143:86740a56073b 495 {
AnnaBridge 143:86740a56073b 496 MODIFY_REG(BKPx->CR, BKP_CR_TPAL, Tamper);
AnnaBridge 143:86740a56073b 497 }
AnnaBridge 143:86740a56073b 498
AnnaBridge 143:86740a56073b 499 /**
AnnaBridge 143:86740a56073b 500 * @brief Disable Active level for Tamper input
AnnaBridge 143:86740a56073b 501 * @rmtoll CR TPAL LL_RTC_TAMPER_SetActiveLevel\n
AnnaBridge 143:86740a56073b 502 * @retval None
AnnaBridge 143:86740a56073b 503 */
AnnaBridge 143:86740a56073b 504 __STATIC_INLINE uint32_t LL_RTC_TAMPER_GetActiveLevel(BKP_TypeDef *BKPx)
AnnaBridge 143:86740a56073b 505 {
AnnaBridge 143:86740a56073b 506 return (uint32_t)(READ_BIT(BKPx->CR, BKP_CR_TPAL));
AnnaBridge 143:86740a56073b 507 }
AnnaBridge 143:86740a56073b 508
AnnaBridge 143:86740a56073b 509 /**
AnnaBridge 143:86740a56073b 510 * @}
AnnaBridge 143:86740a56073b 511 */
AnnaBridge 143:86740a56073b 512
AnnaBridge 143:86740a56073b 513 /** @defgroup RTC_LL_EF_Backup_Registers Backup_Registers
AnnaBridge 143:86740a56073b 514 * @{
AnnaBridge 143:86740a56073b 515 */
AnnaBridge 143:86740a56073b 516
AnnaBridge 143:86740a56073b 517 /**
AnnaBridge 143:86740a56073b 518 * @brief Writes a data in a specified RTC Backup data register.
AnnaBridge 143:86740a56073b 519 * @rmtoll BKPDR DR LL_RTC_BKP_SetRegister
AnnaBridge 143:86740a56073b 520 * @param BKPx BKP Instance
AnnaBridge 143:86740a56073b 521 * @param BackupRegister This parameter can be one of the following values:
AnnaBridge 143:86740a56073b 522 * @arg @ref LL_RTC_BKP_DR1
AnnaBridge 143:86740a56073b 523 * @arg @ref LL_RTC_BKP_DR2
AnnaBridge 143:86740a56073b 524 * @arg @ref LL_RTC_BKP_DR3
AnnaBridge 143:86740a56073b 525 * @arg @ref LL_RTC_BKP_DR4
AnnaBridge 143:86740a56073b 526 * @arg @ref LL_RTC_BKP_DR5
AnnaBridge 143:86740a56073b 527 * @arg @ref LL_RTC_BKP_DR6
AnnaBridge 143:86740a56073b 528 * @arg @ref LL_RTC_BKP_DR7
AnnaBridge 143:86740a56073b 529 * @arg @ref LL_RTC_BKP_DR8
AnnaBridge 143:86740a56073b 530 * @arg @ref LL_RTC_BKP_DR9
AnnaBridge 143:86740a56073b 531 * @arg @ref LL_RTC_BKP_DR10
AnnaBridge 143:86740a56073b 532 * @arg @ref LL_RTC_BKP_DR11 (*)
AnnaBridge 143:86740a56073b 533 * @arg @ref LL_RTC_BKP_DR12 (*)
AnnaBridge 143:86740a56073b 534 * @arg @ref LL_RTC_BKP_DR13 (*)
AnnaBridge 143:86740a56073b 535 * @arg @ref LL_RTC_BKP_DR14 (*)
AnnaBridge 143:86740a56073b 536 * @arg @ref LL_RTC_BKP_DR15 (*)
AnnaBridge 143:86740a56073b 537 * @arg @ref LL_RTC_BKP_DR16 (*)
AnnaBridge 143:86740a56073b 538 * @arg @ref LL_RTC_BKP_DR17 (*)
AnnaBridge 143:86740a56073b 539 * @arg @ref LL_RTC_BKP_DR18 (*)
AnnaBridge 143:86740a56073b 540 * @arg @ref LL_RTC_BKP_DR19 (*)
AnnaBridge 143:86740a56073b 541 * @arg @ref LL_RTC_BKP_DR20 (*)
AnnaBridge 143:86740a56073b 542 * @arg @ref LL_RTC_BKP_DR21 (*)
AnnaBridge 143:86740a56073b 543 * @arg @ref LL_RTC_BKP_DR22 (*)
AnnaBridge 143:86740a56073b 544 * @arg @ref LL_RTC_BKP_DR23 (*)
AnnaBridge 143:86740a56073b 545 * @arg @ref LL_RTC_BKP_DR24 (*)
AnnaBridge 143:86740a56073b 546 * @arg @ref LL_RTC_BKP_DR25 (*)
AnnaBridge 143:86740a56073b 547 * @arg @ref LL_RTC_BKP_DR26 (*)
AnnaBridge 143:86740a56073b 548 * @arg @ref LL_RTC_BKP_DR27 (*)
AnnaBridge 143:86740a56073b 549 * @arg @ref LL_RTC_BKP_DR28 (*)
AnnaBridge 143:86740a56073b 550 * @arg @ref LL_RTC_BKP_DR29 (*)
AnnaBridge 143:86740a56073b 551 * @arg @ref LL_RTC_BKP_DR30 (*)
AnnaBridge 143:86740a56073b 552 * @arg @ref LL_RTC_BKP_DR31 (*)
AnnaBridge 143:86740a56073b 553 * @arg @ref LL_RTC_BKP_DR32 (*)
AnnaBridge 143:86740a56073b 554 * @arg @ref LL_RTC_BKP_DR33 (*)
AnnaBridge 143:86740a56073b 555 * @arg @ref LL_RTC_BKP_DR34 (*)
AnnaBridge 143:86740a56073b 556 * @arg @ref LL_RTC_BKP_DR35 (*)
AnnaBridge 143:86740a56073b 557 * @arg @ref LL_RTC_BKP_DR36 (*)
AnnaBridge 143:86740a56073b 558 * @arg @ref LL_RTC_BKP_DR37 (*)
AnnaBridge 143:86740a56073b 559 * @arg @ref LL_RTC_BKP_DR38 (*)
AnnaBridge 143:86740a56073b 560 * @arg @ref LL_RTC_BKP_DR39 (*)
AnnaBridge 143:86740a56073b 561 * @arg @ref LL_RTC_BKP_DR40 (*)
AnnaBridge 143:86740a56073b 562 * @arg @ref LL_RTC_BKP_DR41 (*)
AnnaBridge 143:86740a56073b 563 * @arg @ref LL_RTC_BKP_DR42 (*)
AnnaBridge 143:86740a56073b 564 * (*) value not defined in all devices.
AnnaBridge 143:86740a56073b 565 * @param Data Value between Min_Data=0x00 and Max_Data=0xFFFFFFFF
AnnaBridge 143:86740a56073b 566 * @retval None
AnnaBridge 143:86740a56073b 567 */
AnnaBridge 143:86740a56073b 568 __STATIC_INLINE void LL_RTC_BKP_SetRegister(BKP_TypeDef *BKPx, uint32_t BackupRegister, uint32_t Data)
AnnaBridge 143:86740a56073b 569 {
AnnaBridge 143:86740a56073b 570 register uint32_t tmp = 0U;
AnnaBridge 143:86740a56073b 571
AnnaBridge 143:86740a56073b 572 tmp = (uint32_t)BKP_BASE;
AnnaBridge 143:86740a56073b 573 tmp += (BackupRegister * 4U);
AnnaBridge 143:86740a56073b 574
AnnaBridge 143:86740a56073b 575 /* Write the specified register */
AnnaBridge 143:86740a56073b 576 *(__IO uint32_t *)tmp = (uint32_t)Data;
AnnaBridge 143:86740a56073b 577 }
AnnaBridge 143:86740a56073b 578
AnnaBridge 143:86740a56073b 579 /**
AnnaBridge 143:86740a56073b 580 * @brief Reads data from the specified RTC Backup data Register.
AnnaBridge 143:86740a56073b 581 * @rmtoll BKPDR DR LL_RTC_BKP_GetRegister
AnnaBridge 143:86740a56073b 582 * @param BKPx BKP Instance
AnnaBridge 143:86740a56073b 583 * @param BackupRegister This parameter can be one of the following values:
AnnaBridge 143:86740a56073b 584 * @arg @ref LL_RTC_BKP_DR1
AnnaBridge 143:86740a56073b 585 * @arg @ref LL_RTC_BKP_DR2
AnnaBridge 143:86740a56073b 586 * @arg @ref LL_RTC_BKP_DR3
AnnaBridge 143:86740a56073b 587 * @arg @ref LL_RTC_BKP_DR4
AnnaBridge 143:86740a56073b 588 * @arg @ref LL_RTC_BKP_DR5
AnnaBridge 143:86740a56073b 589 * @arg @ref LL_RTC_BKP_DR6
AnnaBridge 143:86740a56073b 590 * @arg @ref LL_RTC_BKP_DR7
AnnaBridge 143:86740a56073b 591 * @arg @ref LL_RTC_BKP_DR8
AnnaBridge 143:86740a56073b 592 * @arg @ref LL_RTC_BKP_DR9
AnnaBridge 143:86740a56073b 593 * @arg @ref LL_RTC_BKP_DR10
AnnaBridge 143:86740a56073b 594 * @arg @ref LL_RTC_BKP_DR11 (*)
AnnaBridge 143:86740a56073b 595 * @arg @ref LL_RTC_BKP_DR12 (*)
AnnaBridge 143:86740a56073b 596 * @arg @ref LL_RTC_BKP_DR13 (*)
AnnaBridge 143:86740a56073b 597 * @arg @ref LL_RTC_BKP_DR14 (*)
AnnaBridge 143:86740a56073b 598 * @arg @ref LL_RTC_BKP_DR15 (*)
AnnaBridge 143:86740a56073b 599 * @arg @ref LL_RTC_BKP_DR16 (*)
AnnaBridge 143:86740a56073b 600 * @arg @ref LL_RTC_BKP_DR17 (*)
AnnaBridge 143:86740a56073b 601 * @arg @ref LL_RTC_BKP_DR18 (*)
AnnaBridge 143:86740a56073b 602 * @arg @ref LL_RTC_BKP_DR19 (*)
AnnaBridge 143:86740a56073b 603 * @arg @ref LL_RTC_BKP_DR20 (*)
AnnaBridge 143:86740a56073b 604 * @arg @ref LL_RTC_BKP_DR21 (*)
AnnaBridge 143:86740a56073b 605 * @arg @ref LL_RTC_BKP_DR22 (*)
AnnaBridge 143:86740a56073b 606 * @arg @ref LL_RTC_BKP_DR23 (*)
AnnaBridge 143:86740a56073b 607 * @arg @ref LL_RTC_BKP_DR24 (*)
AnnaBridge 143:86740a56073b 608 * @arg @ref LL_RTC_BKP_DR25 (*)
AnnaBridge 143:86740a56073b 609 * @arg @ref LL_RTC_BKP_DR26 (*)
AnnaBridge 143:86740a56073b 610 * @arg @ref LL_RTC_BKP_DR27 (*)
AnnaBridge 143:86740a56073b 611 * @arg @ref LL_RTC_BKP_DR28 (*)
AnnaBridge 143:86740a56073b 612 * @arg @ref LL_RTC_BKP_DR29 (*)
AnnaBridge 143:86740a56073b 613 * @arg @ref LL_RTC_BKP_DR30 (*)
AnnaBridge 143:86740a56073b 614 * @arg @ref LL_RTC_BKP_DR31 (*)
AnnaBridge 143:86740a56073b 615 * @arg @ref LL_RTC_BKP_DR32 (*)
AnnaBridge 143:86740a56073b 616 * @arg @ref LL_RTC_BKP_DR33 (*)
AnnaBridge 143:86740a56073b 617 * @arg @ref LL_RTC_BKP_DR34 (*)
AnnaBridge 143:86740a56073b 618 * @arg @ref LL_RTC_BKP_DR35 (*)
AnnaBridge 143:86740a56073b 619 * @arg @ref LL_RTC_BKP_DR36 (*)
AnnaBridge 143:86740a56073b 620 * @arg @ref LL_RTC_BKP_DR37 (*)
AnnaBridge 143:86740a56073b 621 * @arg @ref LL_RTC_BKP_DR38 (*)
AnnaBridge 143:86740a56073b 622 * @arg @ref LL_RTC_BKP_DR39 (*)
AnnaBridge 143:86740a56073b 623 * @arg @ref LL_RTC_BKP_DR40 (*)
AnnaBridge 143:86740a56073b 624 * @arg @ref LL_RTC_BKP_DR41 (*)
AnnaBridge 143:86740a56073b 625 * @arg @ref LL_RTC_BKP_DR42 (*)
AnnaBridge 143:86740a56073b 626 * @retval Value between Min_Data=0x00 and Max_Data=0xFFFFFFFF
AnnaBridge 143:86740a56073b 627 */
AnnaBridge 143:86740a56073b 628 __STATIC_INLINE uint32_t LL_RTC_BKP_GetRegister(BKP_TypeDef *BKPx, uint32_t BackupRegister)
AnnaBridge 143:86740a56073b 629 {
AnnaBridge 143:86740a56073b 630 register uint32_t tmp = 0U;
AnnaBridge 143:86740a56073b 631
AnnaBridge 143:86740a56073b 632 tmp = (uint32_t)BKP_BASE;
AnnaBridge 143:86740a56073b 633 tmp += (BackupRegister * 4U);
AnnaBridge 143:86740a56073b 634
AnnaBridge 143:86740a56073b 635 /* Read the specified register */
AnnaBridge 143:86740a56073b 636 return ((*(__IO uint32_t *)tmp) & BKP_DR1_D);
AnnaBridge 143:86740a56073b 637 }
AnnaBridge 143:86740a56073b 638
AnnaBridge 143:86740a56073b 639 /**
AnnaBridge 143:86740a56073b 640 * @}
AnnaBridge 143:86740a56073b 641 */
AnnaBridge 143:86740a56073b 642
AnnaBridge 143:86740a56073b 643 /** @defgroup RTC_LL_EF_Calibration Calibration
AnnaBridge 143:86740a56073b 644 * @{
AnnaBridge 143:86740a56073b 645 */
AnnaBridge 143:86740a56073b 646
AnnaBridge 143:86740a56073b 647 /**
AnnaBridge 143:86740a56073b 648 * @brief Set the coarse digital calibration
AnnaBridge 143:86740a56073b 649 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 143:86740a56073b 650 * @note It can be written in initialization mode only (@ref LL_RTC_EnterInitMode function)
AnnaBridge 143:86740a56073b 651 * @rmtoll RTCCR CAL LL_RTC_CAL_SetCoarseDigital\n
AnnaBridge 143:86740a56073b 652 * @param BKPx RTC Instance
AnnaBridge 143:86740a56073b 653 * @param Value value of coarse calibration expressed in ppm (coded on 5 bits)
AnnaBridge 143:86740a56073b 654 * @note This Calibration value should be between 0 and 121 when using positive sign with a 4-ppm step.
AnnaBridge 143:86740a56073b 655 * @retval None
AnnaBridge 143:86740a56073b 656 */
AnnaBridge 143:86740a56073b 657 __STATIC_INLINE void LL_RTC_CAL_SetCoarseDigital(BKP_TypeDef* BKPx, uint32_t Value)
AnnaBridge 143:86740a56073b 658 {
AnnaBridge 143:86740a56073b 659 MODIFY_REG(BKPx->RTCCR,BKP_RTCCR_CAL, Value);
AnnaBridge 143:86740a56073b 660 }
AnnaBridge 143:86740a56073b 661
AnnaBridge 143:86740a56073b 662 /**
AnnaBridge 143:86740a56073b 663 * @brief Get the coarse digital calibration value
AnnaBridge 143:86740a56073b 664 * @rmtoll RTCCR CAL LL_RTC_CAL_SetCoarseDigital\n
AnnaBridge 143:86740a56073b 665 * @param BKPx BKP Instance
AnnaBridge 143:86740a56073b 666 * @retval value of coarse calibration expressed in ppm (coded on 5 bits)
AnnaBridge 143:86740a56073b 667 */
AnnaBridge 143:86740a56073b 668 __STATIC_INLINE uint32_t LL_RTC_CAL_GetCoarseDigital(BKP_TypeDef *BKPx)
AnnaBridge 143:86740a56073b 669 {
AnnaBridge 143:86740a56073b 670 return (uint32_t)(READ_BIT(BKPx->RTCCR, BKP_RTCCR_CAL));
AnnaBridge 143:86740a56073b 671 }
AnnaBridge 143:86740a56073b 672 /**
AnnaBridge 143:86740a56073b 673 * @}
AnnaBridge 143:86740a56073b 674 */
AnnaBridge 143:86740a56073b 675
AnnaBridge 143:86740a56073b 676 /** @defgroup RTC_LL_EF_FLAG_Management FLAG_Management
AnnaBridge 143:86740a56073b 677 * @{
AnnaBridge 143:86740a56073b 678 */
AnnaBridge 143:86740a56073b 679
AnnaBridge 143:86740a56073b 680 /**
AnnaBridge 143:86740a56073b 681 * @brief Get RTC_TAMPI Interruption detection flag
AnnaBridge 143:86740a56073b 682 * @rmtoll CSR TIF LL_RTC_IsActiveFlag_TAMPI
AnnaBridge 143:86740a56073b 683 * @param BKPx BKP Instance
AnnaBridge 143:86740a56073b 684 * @retval State of bit (1 or 0).
AnnaBridge 143:86740a56073b 685 */
AnnaBridge 143:86740a56073b 686 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMPI(BKP_TypeDef *BKPx)
AnnaBridge 143:86740a56073b 687 {
AnnaBridge 143:86740a56073b 688 return (READ_BIT(BKPx->CSR, BKP_CSR_TIF) == (BKP_CSR_TIF));
AnnaBridge 143:86740a56073b 689 }
AnnaBridge 143:86740a56073b 690
AnnaBridge 143:86740a56073b 691 /**
AnnaBridge 143:86740a56073b 692 * @brief Clear RTC_TAMP Interruption detection flag
AnnaBridge 143:86740a56073b 693 * @rmtoll CSR CTI LL_RTC_ClearFlag_TAMPI
AnnaBridge 143:86740a56073b 694 * @param BKPx BKP Instance
AnnaBridge 143:86740a56073b 695 * @retval None
AnnaBridge 143:86740a56073b 696 */
AnnaBridge 143:86740a56073b 697 __STATIC_INLINE void LL_RTC_ClearFlag_TAMPI(BKP_TypeDef *BKPx)
AnnaBridge 143:86740a56073b 698 {
AnnaBridge 143:86740a56073b 699 SET_BIT(BKPx->CSR, BKP_CSR_CTI);
AnnaBridge 143:86740a56073b 700 }
AnnaBridge 143:86740a56073b 701
AnnaBridge 143:86740a56073b 702 /**
AnnaBridge 143:86740a56073b 703 * @brief Get RTC_TAMPE Event detection flag
AnnaBridge 143:86740a56073b 704 * @rmtoll CSR TEF LL_RTC_IsActiveFlag_TAMPE
AnnaBridge 143:86740a56073b 705 * @param BKPx BKP Instance
AnnaBridge 143:86740a56073b 706 * @retval State of bit (1 or 0).
AnnaBridge 143:86740a56073b 707 */
AnnaBridge 143:86740a56073b 708 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMPE(BKP_TypeDef *BKPx)
AnnaBridge 143:86740a56073b 709 {
AnnaBridge 143:86740a56073b 710 return (READ_BIT(BKPx->CSR, BKP_CSR_TEF) == (BKP_CSR_TEF));
AnnaBridge 143:86740a56073b 711 }
AnnaBridge 143:86740a56073b 712
AnnaBridge 143:86740a56073b 713 /**
AnnaBridge 143:86740a56073b 714 * @brief Clear RTC_TAMPE Even detection flag
AnnaBridge 143:86740a56073b 715 * @rmtoll CSR CTE LL_RTC_ClearFlag_TAMPE
AnnaBridge 143:86740a56073b 716 * @param BKPx BKP Instance
AnnaBridge 143:86740a56073b 717 * @retval None
AnnaBridge 143:86740a56073b 718 */
AnnaBridge 143:86740a56073b 719 __STATIC_INLINE void LL_RTC_ClearFlag_TAMPE(BKP_TypeDef *BKPx)
AnnaBridge 143:86740a56073b 720 {
AnnaBridge 143:86740a56073b 721 SET_BIT(BKPx->CSR, BKP_CSR_CTE);
AnnaBridge 143:86740a56073b 722 }
AnnaBridge 143:86740a56073b 723
AnnaBridge 143:86740a56073b 724 /**
AnnaBridge 143:86740a56073b 725 * @brief Get Alarm flag
AnnaBridge 143:86740a56073b 726 * @rmtoll CRL ALRF LL_RTC_IsActiveFlag_ALR
AnnaBridge 143:86740a56073b 727 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 728 * @retval State of bit (1 or 0).
AnnaBridge 143:86740a56073b 729 */
AnnaBridge 143:86740a56073b 730 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALR(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 731 {
AnnaBridge 143:86740a56073b 732 return (READ_BIT(RTCx->CRL, RTC_CRL_ALRF) == (RTC_CRL_ALRF));
AnnaBridge 143:86740a56073b 733 }
AnnaBridge 143:86740a56073b 734
AnnaBridge 143:86740a56073b 735 /**
AnnaBridge 143:86740a56073b 736 * @brief Clear Alarm flag
AnnaBridge 143:86740a56073b 737 * @rmtoll CRL ALRF LL_RTC_ClearFlag_ALR
AnnaBridge 143:86740a56073b 738 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 739 * @retval None
AnnaBridge 143:86740a56073b 740 */
AnnaBridge 143:86740a56073b 741 __STATIC_INLINE void LL_RTC_ClearFlag_ALR(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 742 {
AnnaBridge 143:86740a56073b 743 CLEAR_BIT(RTCx->CRL, RTC_CRL_ALRF);
AnnaBridge 143:86740a56073b 744 }
AnnaBridge 143:86740a56073b 745
AnnaBridge 143:86740a56073b 746 /**
AnnaBridge 143:86740a56073b 747 * @brief Get Registers synchronization flag
AnnaBridge 143:86740a56073b 748 * @rmtoll CRL RSF LL_RTC_IsActiveFlag_RS
AnnaBridge 143:86740a56073b 749 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 750 * @retval State of bit (1 or 0).
AnnaBridge 143:86740a56073b 751 */
AnnaBridge 143:86740a56073b 752 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RS(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 753 {
AnnaBridge 143:86740a56073b 754 return (READ_BIT(RTCx->CRL, RTC_CRL_RSF) == (RTC_CRL_RSF));
AnnaBridge 143:86740a56073b 755 }
AnnaBridge 143:86740a56073b 756
AnnaBridge 143:86740a56073b 757 /**
AnnaBridge 143:86740a56073b 758 * @brief Clear Registers synchronization flag
AnnaBridge 143:86740a56073b 759 * @rmtoll CRL RSF LL_RTC_ClearFlag_RS
AnnaBridge 143:86740a56073b 760 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 761 * @retval None
AnnaBridge 143:86740a56073b 762 */
AnnaBridge 143:86740a56073b 763 __STATIC_INLINE void LL_RTC_ClearFlag_RS(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 764 {
AnnaBridge 143:86740a56073b 765 CLEAR_BIT(RTCx->CRL, RTC_CRL_RSF);
AnnaBridge 143:86740a56073b 766 }
AnnaBridge 143:86740a56073b 767
AnnaBridge 143:86740a56073b 768 /**
AnnaBridge 143:86740a56073b 769 * @brief Get Registers OverFlow flag
AnnaBridge 143:86740a56073b 770 * @rmtoll CRL OWF LL_RTC_IsActiveFlag_OW
AnnaBridge 143:86740a56073b 771 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 772 * @retval State of bit (1 or 0).
AnnaBridge 143:86740a56073b 773 */
AnnaBridge 143:86740a56073b 774 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_OW(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 775 {
AnnaBridge 143:86740a56073b 776 return (READ_BIT(RTCx->CRL, RTC_CRL_OWF) == (RTC_CRL_OWF));
AnnaBridge 143:86740a56073b 777 }
AnnaBridge 143:86740a56073b 778
AnnaBridge 143:86740a56073b 779 /**
AnnaBridge 143:86740a56073b 780 * @brief Clear Registers OverFlow flag
AnnaBridge 143:86740a56073b 781 * @rmtoll CRL OWF LL_RTC_ClearFlag_OW
AnnaBridge 143:86740a56073b 782 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 783 * @retval None
AnnaBridge 143:86740a56073b 784 */
AnnaBridge 143:86740a56073b 785 __STATIC_INLINE void LL_RTC_ClearFlag_OW(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 786 {
AnnaBridge 143:86740a56073b 787 CLEAR_BIT(RTCx->CRL, RTC_CRL_OWF);
AnnaBridge 143:86740a56073b 788 }
AnnaBridge 143:86740a56073b 789
AnnaBridge 143:86740a56073b 790 /**
AnnaBridge 143:86740a56073b 791 * @brief Get Registers synchronization flag
AnnaBridge 143:86740a56073b 792 * @rmtoll CRL SECF LL_RTC_IsActiveFlag_SEC
AnnaBridge 143:86740a56073b 793 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 794 * @retval State of bit (1 or 0).
AnnaBridge 143:86740a56073b 795 */
AnnaBridge 143:86740a56073b 796 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_SEC(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 797 {
AnnaBridge 143:86740a56073b 798 return (READ_BIT(RTCx->CRL, RTC_CRL_SECF) == (RTC_CRL_SECF));
AnnaBridge 143:86740a56073b 799 }
AnnaBridge 143:86740a56073b 800
AnnaBridge 143:86740a56073b 801 /**
AnnaBridge 143:86740a56073b 802 * @brief Clear Registers synchronization flag
AnnaBridge 143:86740a56073b 803 * @rmtoll CRL SECF LL_RTC_ClearFlag_SEC
AnnaBridge 143:86740a56073b 804 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 805 * @retval None
AnnaBridge 143:86740a56073b 806 */
AnnaBridge 143:86740a56073b 807 __STATIC_INLINE void LL_RTC_ClearFlag_SEC(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 808 {
AnnaBridge 143:86740a56073b 809 CLEAR_BIT(RTCx->CRL, RTC_CRL_SECF);
AnnaBridge 143:86740a56073b 810 }
AnnaBridge 143:86740a56073b 811
AnnaBridge 143:86740a56073b 812 /**
AnnaBridge 143:86740a56073b 813 * @brief Get RTC Operation OFF status flag
AnnaBridge 143:86740a56073b 814 * @rmtoll CRL RTOFF LL_RTC_IsActiveFlag_RTOF
AnnaBridge 143:86740a56073b 815 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 816 * @retval State of bit (1 or 0).
AnnaBridge 143:86740a56073b 817 */
AnnaBridge 143:86740a56073b 818 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RTOF(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 819 {
AnnaBridge 143:86740a56073b 820 return (READ_BIT(RTCx->CRL, RTC_CRL_RTOFF) == (RTC_CRL_RTOFF));
AnnaBridge 143:86740a56073b 821 }
AnnaBridge 143:86740a56073b 822
AnnaBridge 143:86740a56073b 823 /**
AnnaBridge 143:86740a56073b 824 * @}
AnnaBridge 143:86740a56073b 825 */
AnnaBridge 143:86740a56073b 826
AnnaBridge 143:86740a56073b 827 /** @defgroup RTC_LL_EF_IT_Management IT_Management
AnnaBridge 143:86740a56073b 828 * @{
AnnaBridge 143:86740a56073b 829 */
AnnaBridge 143:86740a56073b 830
AnnaBridge 143:86740a56073b 831 /**
AnnaBridge 143:86740a56073b 832 * @brief Enable Alarm interrupt
AnnaBridge 143:86740a56073b 833 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 143:86740a56073b 834 * @rmtoll CRH ALRIE LL_RTC_EnableIT_ALR
AnnaBridge 143:86740a56073b 835 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 836 * @retval None
AnnaBridge 143:86740a56073b 837 */
AnnaBridge 143:86740a56073b 838 __STATIC_INLINE void LL_RTC_EnableIT_ALR(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 839 {
AnnaBridge 143:86740a56073b 840 SET_BIT(RTCx->CRH, RTC_CRH_ALRIE);
AnnaBridge 143:86740a56073b 841 }
AnnaBridge 143:86740a56073b 842
AnnaBridge 143:86740a56073b 843 /**
AnnaBridge 143:86740a56073b 844 * @brief Disable Alarm interrupt
AnnaBridge 143:86740a56073b 845 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 143:86740a56073b 846 * @rmtoll CRH ALRIE LL_RTC_DisableIT_ALR
AnnaBridge 143:86740a56073b 847 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 848 * @retval None
AnnaBridge 143:86740a56073b 849 */
AnnaBridge 143:86740a56073b 850 __STATIC_INLINE void LL_RTC_DisableIT_ALR(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 851 {
AnnaBridge 143:86740a56073b 852 CLEAR_BIT(RTCx->CRH, RTC_CRH_ALRIE);
AnnaBridge 143:86740a56073b 853 }
AnnaBridge 143:86740a56073b 854
AnnaBridge 143:86740a56073b 855 /**
AnnaBridge 143:86740a56073b 856 * @brief Check if Alarm interrupt is enabled or not
AnnaBridge 143:86740a56073b 857 * @rmtoll CRH ALRIE LL_RTC_IsEnabledIT_ALR
AnnaBridge 143:86740a56073b 858 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 859 * @retval State of bit (1 or 0).
AnnaBridge 143:86740a56073b 860 */
AnnaBridge 143:86740a56073b 861 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_ALR(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 862 {
AnnaBridge 143:86740a56073b 863 return (READ_BIT(RTCx->CRH, RTC_CRH_ALRIE) == (RTC_CRH_ALRIE));
AnnaBridge 143:86740a56073b 864 }
AnnaBridge 143:86740a56073b 865
AnnaBridge 143:86740a56073b 866 /**
AnnaBridge 143:86740a56073b 867 * @brief Enable Second Interrupt interrupt
AnnaBridge 143:86740a56073b 868 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 143:86740a56073b 869 * @rmtoll CRH SECIE LL_RTC_EnableIT_SEC
AnnaBridge 143:86740a56073b 870 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 871 * @retval None
AnnaBridge 143:86740a56073b 872 */
AnnaBridge 143:86740a56073b 873 __STATIC_INLINE void LL_RTC_EnableIT_SEC(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 874 {
AnnaBridge 143:86740a56073b 875 SET_BIT(RTCx->CRH, RTC_CRH_SECIE);
AnnaBridge 143:86740a56073b 876 }
AnnaBridge 143:86740a56073b 877
AnnaBridge 143:86740a56073b 878 /**
AnnaBridge 143:86740a56073b 879 * @brief Disable Second interrupt
AnnaBridge 143:86740a56073b 880 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 143:86740a56073b 881 * @rmtoll CRH SECIE LL_RTC_DisableIT_SEC
AnnaBridge 143:86740a56073b 882 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 883 * @retval None
AnnaBridge 143:86740a56073b 884 */
AnnaBridge 143:86740a56073b 885 __STATIC_INLINE void LL_RTC_DisableIT_SEC(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 886 {
AnnaBridge 143:86740a56073b 887 CLEAR_BIT(RTCx->CRH, RTC_CRH_SECIE);
AnnaBridge 143:86740a56073b 888 }
AnnaBridge 143:86740a56073b 889
AnnaBridge 143:86740a56073b 890 /**
AnnaBridge 143:86740a56073b 891 * @brief Check if Second interrupt is enabled or not
AnnaBridge 143:86740a56073b 892 * @rmtoll CRH SECIE LL_RTC_IsEnabledIT_SEC
AnnaBridge 143:86740a56073b 893 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 894 * @retval State of bit (1 or 0).
AnnaBridge 143:86740a56073b 895 */
AnnaBridge 143:86740a56073b 896 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_SEC(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 897 {
AnnaBridge 143:86740a56073b 898 return (READ_BIT(RTCx->CRH, RTC_CRH_SECIE) == (RTC_CRH_SECIE));
AnnaBridge 143:86740a56073b 899 }
AnnaBridge 143:86740a56073b 900
AnnaBridge 143:86740a56073b 901 /**
AnnaBridge 143:86740a56073b 902 * @brief Enable OverFlow interrupt
AnnaBridge 143:86740a56073b 903 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 143:86740a56073b 904 * @rmtoll CRH OWIE LL_RTC_EnableIT_OW
AnnaBridge 143:86740a56073b 905 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 906 * @retval None
AnnaBridge 143:86740a56073b 907 */
AnnaBridge 143:86740a56073b 908 __STATIC_INLINE void LL_RTC_EnableIT_OW(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 909 {
AnnaBridge 143:86740a56073b 910 SET_BIT(RTCx->CRH, RTC_CRH_OWIE);
AnnaBridge 143:86740a56073b 911 }
AnnaBridge 143:86740a56073b 912
AnnaBridge 143:86740a56073b 913 /**
AnnaBridge 143:86740a56073b 914 * @brief Disable OverFlow interrupt
AnnaBridge 143:86740a56073b 915 * @note Bit is write-protected. @ref LL_RTC_DisableWriteProtection function should be called before.
AnnaBridge 143:86740a56073b 916 * @rmtoll CRH OWIE LL_RTC_DisableIT_OW
AnnaBridge 143:86740a56073b 917 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 918 * @retval None
AnnaBridge 143:86740a56073b 919 */
AnnaBridge 143:86740a56073b 920 __STATIC_INLINE void LL_RTC_DisableIT_OW(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 921 {
AnnaBridge 143:86740a56073b 922 CLEAR_BIT(RTCx->CRH, RTC_CRH_OWIE);
AnnaBridge 143:86740a56073b 923 }
AnnaBridge 143:86740a56073b 924
AnnaBridge 143:86740a56073b 925 /**
AnnaBridge 143:86740a56073b 926 * @brief Check if OverFlow interrupt is enabled or not
AnnaBridge 143:86740a56073b 927 * @rmtoll CRH OWIE LL_RTC_IsEnabledIT_OW
AnnaBridge 143:86740a56073b 928 * @param RTCx RTC Instance
AnnaBridge 143:86740a56073b 929 * @retval State of bit (1 or 0).
AnnaBridge 143:86740a56073b 930 */
AnnaBridge 143:86740a56073b 931 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_OW(RTC_TypeDef *RTCx)
AnnaBridge 143:86740a56073b 932 {
AnnaBridge 143:86740a56073b 933 return (READ_BIT(RTCx->CRH, RTC_CRH_OWIE) == (RTC_CRH_OWIE));
AnnaBridge 143:86740a56073b 934 }
AnnaBridge 143:86740a56073b 935
AnnaBridge 143:86740a56073b 936 /**
AnnaBridge 143:86740a56073b 937 * @brief Enable Tamper interrupt
AnnaBridge 143:86740a56073b 938 * @rmtoll CSR TPIE LL_RTC_EnableIT_TAMP
AnnaBridge 143:86740a56073b 939 * @param BKPx BKP Instance
AnnaBridge 143:86740a56073b 940 * @retval None
AnnaBridge 143:86740a56073b 941 */
AnnaBridge 143:86740a56073b 942 __STATIC_INLINE void LL_RTC_EnableIT_TAMP(BKP_TypeDef *BKPx)
AnnaBridge 143:86740a56073b 943 {
AnnaBridge 143:86740a56073b 944 SET_BIT(BKPx->CSR,BKP_CSR_TPIE);
AnnaBridge 143:86740a56073b 945 }
AnnaBridge 143:86740a56073b 946
AnnaBridge 143:86740a56073b 947 /**
AnnaBridge 143:86740a56073b 948 * @brief Disable Tamper interrupt
AnnaBridge 143:86740a56073b 949 * @rmtoll CSR TPIE LL_RTC_EnableIT_TAMP
AnnaBridge 143:86740a56073b 950 * @param BKPx BKP Instance
AnnaBridge 143:86740a56073b 951 * @retval None
AnnaBridge 143:86740a56073b 952 */
AnnaBridge 143:86740a56073b 953 __STATIC_INLINE void LL_RTC_DisableIT_TAMP(BKP_TypeDef *BKPx)
AnnaBridge 143:86740a56073b 954 {
AnnaBridge 143:86740a56073b 955 CLEAR_BIT(BKPx->CSR,BKP_CSR_TPIE);
AnnaBridge 143:86740a56073b 956 }
AnnaBridge 143:86740a56073b 957
AnnaBridge 143:86740a56073b 958 /**
AnnaBridge 143:86740a56073b 959 * @brief Check if all the TAMPER interrupts are enabled or not
AnnaBridge 143:86740a56073b 960 * @rmtoll CSR TPIE LL_RTC_IsEnabledIT_TAMP
AnnaBridge 143:86740a56073b 961 * @param BKPx BKP Instance
AnnaBridge 143:86740a56073b 962 * @retval State of bit (1 or 0).
AnnaBridge 143:86740a56073b 963 */
AnnaBridge 143:86740a56073b 964 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TAMP(BKP_TypeDef *BKPx)
AnnaBridge 143:86740a56073b 965 {
AnnaBridge 143:86740a56073b 966 return (READ_BIT(BKPx->CSR,BKP_CSR_TPIE) == BKP_CSR_TPIE);
AnnaBridge 143:86740a56073b 967 }
AnnaBridge 143:86740a56073b 968 /**
AnnaBridge 143:86740a56073b 969 * @}
AnnaBridge 143:86740a56073b 970 */
AnnaBridge 143:86740a56073b 971
AnnaBridge 143:86740a56073b 972 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 143:86740a56073b 973 /** @defgroup RTC_LL_EF_Init Initialization and de-initialization functions
AnnaBridge 143:86740a56073b 974 * @{
AnnaBridge 143:86740a56073b 975 */
AnnaBridge 143:86740a56073b 976
AnnaBridge 143:86740a56073b 977 ErrorStatus LL_RTC_DeInit(RTC_TypeDef *RTCx);
AnnaBridge 143:86740a56073b 978 ErrorStatus LL_RTC_Init(RTC_TypeDef *RTCx, LL_RTC_InitTypeDef *RTC_InitStruct);
AnnaBridge 143:86740a56073b 979 void LL_RTC_StructInit(LL_RTC_InitTypeDef *RTC_InitStruct);
AnnaBridge 143:86740a56073b 980 ErrorStatus LL_RTC_TIME_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_TimeTypeDef *RTC_TimeStruct);
AnnaBridge 143:86740a56073b 981 void LL_RTC_TIME_StructInit(LL_RTC_TimeTypeDef *RTC_TimeStruct);
AnnaBridge 143:86740a56073b 982 ErrorStatus LL_RTC_ALARM_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_AlarmTypeDef *RTC_AlarmStruct);
AnnaBridge 143:86740a56073b 983 void LL_RTC_ALARM_StructInit(LL_RTC_AlarmTypeDef *RTC_AlarmStruct);
AnnaBridge 143:86740a56073b 984 ErrorStatus LL_RTC_EnterInitMode(RTC_TypeDef *RTCx);
AnnaBridge 143:86740a56073b 985 ErrorStatus LL_RTC_ExitInitMode(RTC_TypeDef *RTCx);
AnnaBridge 143:86740a56073b 986 ErrorStatus LL_RTC_WaitForSynchro(RTC_TypeDef *RTCx);
AnnaBridge 143:86740a56073b 987 ErrorStatus LL_RTC_TIME_SetCounter(RTC_TypeDef *RTCx, uint32_t TimeCounter);
AnnaBridge 143:86740a56073b 988 ErrorStatus LL_RTC_ALARM_SetCounter(RTC_TypeDef *RTCx, uint32_t AlarmCounter);
AnnaBridge 143:86740a56073b 989
AnnaBridge 143:86740a56073b 990 /**
AnnaBridge 143:86740a56073b 991 * @}
AnnaBridge 143:86740a56073b 992 */
AnnaBridge 143:86740a56073b 993 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 143:86740a56073b 994
AnnaBridge 143:86740a56073b 995 /**
AnnaBridge 143:86740a56073b 996 * @}
AnnaBridge 143:86740a56073b 997 */
AnnaBridge 143:86740a56073b 998
AnnaBridge 143:86740a56073b 999 /**
AnnaBridge 143:86740a56073b 1000 * @}
AnnaBridge 143:86740a56073b 1001 */
AnnaBridge 143:86740a56073b 1002
AnnaBridge 143:86740a56073b 1003 /**
AnnaBridge 143:86740a56073b 1004 * @}
AnnaBridge 143:86740a56073b 1005 */
AnnaBridge 143:86740a56073b 1006
AnnaBridge 143:86740a56073b 1007 #endif /* defined(RTC) */
AnnaBridge 143:86740a56073b 1008
AnnaBridge 143:86740a56073b 1009 /**
AnnaBridge 143:86740a56073b 1010 * @}
AnnaBridge 143:86740a56073b 1011 */
AnnaBridge 143:86740a56073b 1012
AnnaBridge 143:86740a56073b 1013 #ifdef __cplusplus
AnnaBridge 143:86740a56073b 1014 }
AnnaBridge 143:86740a56073b 1015 #endif
AnnaBridge 143:86740a56073b 1016
AnnaBridge 143:86740a56073b 1017 #endif /* __STM32F1xx_LL_RTC_H */
AnnaBridge 143:86740a56073b 1018
AnnaBridge 143:86740a56073b 1019 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/