Gleb Klochkov / Mbed OS Climatcontroll_Main

Dependencies:   esp8266-driver

Committer:
glebiuskv
Date:
Fri Apr 13 08:53:46 2018 +0000
Revision:
0:2f0e1e23c242
initial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
glebiuskv 0:2f0e1e23c242 1 /**
glebiuskv 0:2f0e1e23c242 2 ******************************************************************************
glebiuskv 0:2f0e1e23c242 3 * @file stm32l4xx_ll_rng.h
glebiuskv 0:2f0e1e23c242 4 * @author MCD Application Team
glebiuskv 0:2f0e1e23c242 5 * @brief Header file of RNG LL module.
glebiuskv 0:2f0e1e23c242 6 ******************************************************************************
glebiuskv 0:2f0e1e23c242 7 * @attention
glebiuskv 0:2f0e1e23c242 8 *
glebiuskv 0:2f0e1e23c242 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
glebiuskv 0:2f0e1e23c242 10 *
glebiuskv 0:2f0e1e23c242 11 * Redistribution and use in source and binary forms, with or without modification,
glebiuskv 0:2f0e1e23c242 12 * are permitted provided that the following conditions are met:
glebiuskv 0:2f0e1e23c242 13 * 1. Redistributions of source code must retain the above copyright notice,
glebiuskv 0:2f0e1e23c242 14 * this list of conditions and the following disclaimer.
glebiuskv 0:2f0e1e23c242 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
glebiuskv 0:2f0e1e23c242 16 * this list of conditions and the following disclaimer in the documentation
glebiuskv 0:2f0e1e23c242 17 * and/or other materials provided with the distribution.
glebiuskv 0:2f0e1e23c242 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
glebiuskv 0:2f0e1e23c242 19 * may be used to endorse or promote products derived from this software
glebiuskv 0:2f0e1e23c242 20 * without specific prior written permission.
glebiuskv 0:2f0e1e23c242 21 *
glebiuskv 0:2f0e1e23c242 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
glebiuskv 0:2f0e1e23c242 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
glebiuskv 0:2f0e1e23c242 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
glebiuskv 0:2f0e1e23c242 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
glebiuskv 0:2f0e1e23c242 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
glebiuskv 0:2f0e1e23c242 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
glebiuskv 0:2f0e1e23c242 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
glebiuskv 0:2f0e1e23c242 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
glebiuskv 0:2f0e1e23c242 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
glebiuskv 0:2f0e1e23c242 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
glebiuskv 0:2f0e1e23c242 32 *
glebiuskv 0:2f0e1e23c242 33 ******************************************************************************
glebiuskv 0:2f0e1e23c242 34 */
glebiuskv 0:2f0e1e23c242 35
glebiuskv 0:2f0e1e23c242 36 /* Define to prevent recursive inclusion -------------------------------------*/
glebiuskv 0:2f0e1e23c242 37 #ifndef __STM32L4xx_LL_RNG_H
glebiuskv 0:2f0e1e23c242 38 #define __STM32L4xx_LL_RNG_H
glebiuskv 0:2f0e1e23c242 39
glebiuskv 0:2f0e1e23c242 40 #ifdef __cplusplus
glebiuskv 0:2f0e1e23c242 41 extern "C" {
glebiuskv 0:2f0e1e23c242 42 #endif
glebiuskv 0:2f0e1e23c242 43
glebiuskv 0:2f0e1e23c242 44 /* Includes ------------------------------------------------------------------*/
glebiuskv 0:2f0e1e23c242 45 #include "stm32l4xx.h"
glebiuskv 0:2f0e1e23c242 46
glebiuskv 0:2f0e1e23c242 47 /** @addtogroup STM32L4xx_LL_Driver
glebiuskv 0:2f0e1e23c242 48 * @{
glebiuskv 0:2f0e1e23c242 49 */
glebiuskv 0:2f0e1e23c242 50
glebiuskv 0:2f0e1e23c242 51 #if defined(RNG)
glebiuskv 0:2f0e1e23c242 52
glebiuskv 0:2f0e1e23c242 53 /** @defgroup RNG_LL RNG
glebiuskv 0:2f0e1e23c242 54 * @{
glebiuskv 0:2f0e1e23c242 55 */
glebiuskv 0:2f0e1e23c242 56
glebiuskv 0:2f0e1e23c242 57 /* Private types -------------------------------------------------------------*/
glebiuskv 0:2f0e1e23c242 58 /* Private variables ---------------------------------------------------------*/
glebiuskv 0:2f0e1e23c242 59 /* Private constants ---------------------------------------------------------*/
glebiuskv 0:2f0e1e23c242 60 /* Private macros ------------------------------------------------------------*/
glebiuskv 0:2f0e1e23c242 61
glebiuskv 0:2f0e1e23c242 62 /* Exported types ------------------------------------------------------------*/
glebiuskv 0:2f0e1e23c242 63 #if defined(USE_FULL_LL_DRIVER)
glebiuskv 0:2f0e1e23c242 64 /** @defgroup RNG_LL_ES_Init_Struct RNG Exported Init structures
glebiuskv 0:2f0e1e23c242 65 * @{
glebiuskv 0:2f0e1e23c242 66 */
glebiuskv 0:2f0e1e23c242 67
glebiuskv 0:2f0e1e23c242 68
glebiuskv 0:2f0e1e23c242 69 #if defined(RNG_CR_CED)
glebiuskv 0:2f0e1e23c242 70 /**
glebiuskv 0:2f0e1e23c242 71 * @brief LL RNG Init Structure Definition
glebiuskv 0:2f0e1e23c242 72 */
glebiuskv 0:2f0e1e23c242 73 typedef struct
glebiuskv 0:2f0e1e23c242 74 {
glebiuskv 0:2f0e1e23c242 75 uint32_t ClockErrorDetection; /*!< Clock error detection.
glebiuskv 0:2f0e1e23c242 76 This parameter can be one value of @ref RNG_LL_CED.
glebiuskv 0:2f0e1e23c242 77
glebiuskv 0:2f0e1e23c242 78 This parameter can be modified using unitary functions @ref LL_RNG_EnableClkErrorDetect(). */
glebiuskv 0:2f0e1e23c242 79 }LL_RNG_InitTypeDef;
glebiuskv 0:2f0e1e23c242 80 #endif /* defined(RNG_CR_CED) */
glebiuskv 0:2f0e1e23c242 81
glebiuskv 0:2f0e1e23c242 82 /**
glebiuskv 0:2f0e1e23c242 83 * @}
glebiuskv 0:2f0e1e23c242 84 */
glebiuskv 0:2f0e1e23c242 85 #endif /* USE_FULL_LL_DRIVER */
glebiuskv 0:2f0e1e23c242 86
glebiuskv 0:2f0e1e23c242 87 /* Exported constants --------------------------------------------------------*/
glebiuskv 0:2f0e1e23c242 88 /** @defgroup RNG_LL_Exported_Constants RNG Exported Constants
glebiuskv 0:2f0e1e23c242 89 * @{
glebiuskv 0:2f0e1e23c242 90 */
glebiuskv 0:2f0e1e23c242 91
glebiuskv 0:2f0e1e23c242 92 #if defined(RNG_CR_CED)
glebiuskv 0:2f0e1e23c242 93 /** @defgroup RNG_LL_CED Clock Error Detection
glebiuskv 0:2f0e1e23c242 94 * @{
glebiuskv 0:2f0e1e23c242 95 */
glebiuskv 0:2f0e1e23c242 96 #define LL_RNG_CED_ENABLE 0x00000000U /*!< Clock error detection enabled */
glebiuskv 0:2f0e1e23c242 97 #define LL_RNG_CED_DISABLE RNG_CR_CED /*!< Clock error detection disabled */
glebiuskv 0:2f0e1e23c242 98 /**
glebiuskv 0:2f0e1e23c242 99 * @}
glebiuskv 0:2f0e1e23c242 100 */
glebiuskv 0:2f0e1e23c242 101 #endif /* defined(RNG_CR_CED) */
glebiuskv 0:2f0e1e23c242 102
glebiuskv 0:2f0e1e23c242 103
glebiuskv 0:2f0e1e23c242 104 /** @defgroup RNG_LL_EC_GET_FLAG Get Flags Defines
glebiuskv 0:2f0e1e23c242 105 * @brief Flags defines which can be used with LL_RNG_ReadReg function
glebiuskv 0:2f0e1e23c242 106 * @{
glebiuskv 0:2f0e1e23c242 107 */
glebiuskv 0:2f0e1e23c242 108 #define LL_RNG_SR_DRDY RNG_SR_DRDY /*!< Register contains valid random data */
glebiuskv 0:2f0e1e23c242 109 #define LL_RNG_SR_CECS RNG_SR_CECS /*!< Clock error current status */
glebiuskv 0:2f0e1e23c242 110 #define LL_RNG_SR_SECS RNG_SR_SECS /*!< Seed error current status */
glebiuskv 0:2f0e1e23c242 111 #define LL_RNG_SR_CEIS RNG_SR_CEIS /*!< Clock error interrupt status */
glebiuskv 0:2f0e1e23c242 112 #define LL_RNG_SR_SEIS RNG_SR_SEIS /*!< Seed error interrupt status */
glebiuskv 0:2f0e1e23c242 113 /**
glebiuskv 0:2f0e1e23c242 114 * @}
glebiuskv 0:2f0e1e23c242 115 */
glebiuskv 0:2f0e1e23c242 116
glebiuskv 0:2f0e1e23c242 117 /** @defgroup RNG_LL_EC_IT IT Defines
glebiuskv 0:2f0e1e23c242 118 * @brief IT defines which can be used with LL_RNG_ReadReg and LL_RNG_WriteReg macros
glebiuskv 0:2f0e1e23c242 119 * @{
glebiuskv 0:2f0e1e23c242 120 */
glebiuskv 0:2f0e1e23c242 121 #define LL_RNG_CR_IE RNG_CR_IE /*!< RNG Interrupt enable */
glebiuskv 0:2f0e1e23c242 122 /**
glebiuskv 0:2f0e1e23c242 123 * @}
glebiuskv 0:2f0e1e23c242 124 */
glebiuskv 0:2f0e1e23c242 125
glebiuskv 0:2f0e1e23c242 126 /**
glebiuskv 0:2f0e1e23c242 127 * @}
glebiuskv 0:2f0e1e23c242 128 */
glebiuskv 0:2f0e1e23c242 129
glebiuskv 0:2f0e1e23c242 130 /* Exported macro ------------------------------------------------------------*/
glebiuskv 0:2f0e1e23c242 131 /** @defgroup RNG_LL_Exported_Macros RNG Exported Macros
glebiuskv 0:2f0e1e23c242 132 * @{
glebiuskv 0:2f0e1e23c242 133 */
glebiuskv 0:2f0e1e23c242 134
glebiuskv 0:2f0e1e23c242 135 /** @defgroup RNG_LL_EM_WRITE_READ Common Write and read registers Macros
glebiuskv 0:2f0e1e23c242 136 * @{
glebiuskv 0:2f0e1e23c242 137 */
glebiuskv 0:2f0e1e23c242 138
glebiuskv 0:2f0e1e23c242 139 /**
glebiuskv 0:2f0e1e23c242 140 * @brief Write a value in RNG register
glebiuskv 0:2f0e1e23c242 141 * @param __INSTANCE__ RNG Instance
glebiuskv 0:2f0e1e23c242 142 * @param __REG__ Register to be written
glebiuskv 0:2f0e1e23c242 143 * @param __VALUE__ Value to be written in the register
glebiuskv 0:2f0e1e23c242 144 * @retval None
glebiuskv 0:2f0e1e23c242 145 */
glebiuskv 0:2f0e1e23c242 146 #define LL_RNG_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
glebiuskv 0:2f0e1e23c242 147
glebiuskv 0:2f0e1e23c242 148 /**
glebiuskv 0:2f0e1e23c242 149 * @brief Read a value in RNG register
glebiuskv 0:2f0e1e23c242 150 * @param __INSTANCE__ RNG Instance
glebiuskv 0:2f0e1e23c242 151 * @param __REG__ Register to be read
glebiuskv 0:2f0e1e23c242 152 * @retval Register value
glebiuskv 0:2f0e1e23c242 153 */
glebiuskv 0:2f0e1e23c242 154 #define LL_RNG_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
glebiuskv 0:2f0e1e23c242 155 /**
glebiuskv 0:2f0e1e23c242 156 * @}
glebiuskv 0:2f0e1e23c242 157 */
glebiuskv 0:2f0e1e23c242 158
glebiuskv 0:2f0e1e23c242 159 /**
glebiuskv 0:2f0e1e23c242 160 * @}
glebiuskv 0:2f0e1e23c242 161 */
glebiuskv 0:2f0e1e23c242 162
glebiuskv 0:2f0e1e23c242 163
glebiuskv 0:2f0e1e23c242 164 /* Exported functions --------------------------------------------------------*/
glebiuskv 0:2f0e1e23c242 165 /** @defgroup RNG_LL_Exported_Functions RNG Exported Functions
glebiuskv 0:2f0e1e23c242 166 * @{
glebiuskv 0:2f0e1e23c242 167 */
glebiuskv 0:2f0e1e23c242 168 /** @defgroup RNG_LL_EF_Configuration RNG Configuration functions
glebiuskv 0:2f0e1e23c242 169 * @{
glebiuskv 0:2f0e1e23c242 170 */
glebiuskv 0:2f0e1e23c242 171
glebiuskv 0:2f0e1e23c242 172 /**
glebiuskv 0:2f0e1e23c242 173 * @brief Enable Random Number Generation
glebiuskv 0:2f0e1e23c242 174 * @rmtoll CR RNGEN LL_RNG_Enable
glebiuskv 0:2f0e1e23c242 175 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 176 * @retval None
glebiuskv 0:2f0e1e23c242 177 */
glebiuskv 0:2f0e1e23c242 178 __STATIC_INLINE void LL_RNG_Enable(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 179 {
glebiuskv 0:2f0e1e23c242 180 SET_BIT(RNGx->CR, RNG_CR_RNGEN);
glebiuskv 0:2f0e1e23c242 181 }
glebiuskv 0:2f0e1e23c242 182
glebiuskv 0:2f0e1e23c242 183 /**
glebiuskv 0:2f0e1e23c242 184 * @brief Disable Random Number Generation
glebiuskv 0:2f0e1e23c242 185 * @rmtoll CR RNGEN LL_RNG_Disable
glebiuskv 0:2f0e1e23c242 186 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 187 * @retval None
glebiuskv 0:2f0e1e23c242 188 */
glebiuskv 0:2f0e1e23c242 189 __STATIC_INLINE void LL_RNG_Disable(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 190 {
glebiuskv 0:2f0e1e23c242 191 CLEAR_BIT(RNGx->CR, RNG_CR_RNGEN);
glebiuskv 0:2f0e1e23c242 192 }
glebiuskv 0:2f0e1e23c242 193
glebiuskv 0:2f0e1e23c242 194 /**
glebiuskv 0:2f0e1e23c242 195 * @brief Check if Random Number Generator is enabled
glebiuskv 0:2f0e1e23c242 196 * @rmtoll CR RNGEN LL_RNG_IsEnabled
glebiuskv 0:2f0e1e23c242 197 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 198 * @retval State of bit (1 or 0).
glebiuskv 0:2f0e1e23c242 199 */
glebiuskv 0:2f0e1e23c242 200 __STATIC_INLINE uint32_t LL_RNG_IsEnabled(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 201 {
glebiuskv 0:2f0e1e23c242 202 return (READ_BIT(RNGx->CR, RNG_CR_RNGEN) == (RNG_CR_RNGEN));
glebiuskv 0:2f0e1e23c242 203 }
glebiuskv 0:2f0e1e23c242 204
glebiuskv 0:2f0e1e23c242 205 #if defined(RNG_CR_CED)
glebiuskv 0:2f0e1e23c242 206 /**
glebiuskv 0:2f0e1e23c242 207 * @brief Enable RNG Clock Error Detection
glebiuskv 0:2f0e1e23c242 208 * @rmtoll CR CED LL_RNG_EnableClkErrorDetect
glebiuskv 0:2f0e1e23c242 209 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 210 * @retval None
glebiuskv 0:2f0e1e23c242 211 */
glebiuskv 0:2f0e1e23c242 212 __STATIC_INLINE void LL_RNG_EnableClkErrorDetect(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 213 {
glebiuskv 0:2f0e1e23c242 214 CLEAR_BIT(RNGx->CR, RNG_CR_CED);
glebiuskv 0:2f0e1e23c242 215 }
glebiuskv 0:2f0e1e23c242 216
glebiuskv 0:2f0e1e23c242 217 /**
glebiuskv 0:2f0e1e23c242 218 * @brief Disable RNG Clock Error Detection
glebiuskv 0:2f0e1e23c242 219 * @rmtoll CR CED LL_RNG_DisableClkErrorDetect
glebiuskv 0:2f0e1e23c242 220 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 221 * @retval None
glebiuskv 0:2f0e1e23c242 222 */
glebiuskv 0:2f0e1e23c242 223 __STATIC_INLINE void LL_RNG_DisableClkErrorDetect(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 224 {
glebiuskv 0:2f0e1e23c242 225 SET_BIT(RNGx->CR, RNG_CR_CED);
glebiuskv 0:2f0e1e23c242 226 }
glebiuskv 0:2f0e1e23c242 227
glebiuskv 0:2f0e1e23c242 228 /**
glebiuskv 0:2f0e1e23c242 229 * @brief Check if RNG Clock Error Detection is enabled
glebiuskv 0:2f0e1e23c242 230 * @rmtoll CR CED LL_RNG_IsEnabledClkErrorDetect
glebiuskv 0:2f0e1e23c242 231 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 232 * @retval State of bit (1 or 0).
glebiuskv 0:2f0e1e23c242 233 */
glebiuskv 0:2f0e1e23c242 234 __STATIC_INLINE uint32_t LL_RNG_IsEnabledClkErrorDetect(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 235 {
glebiuskv 0:2f0e1e23c242 236 return (!(READ_BIT(RNGx->CR, RNG_CR_CED) == (RNG_CR_CED)));
glebiuskv 0:2f0e1e23c242 237 }
glebiuskv 0:2f0e1e23c242 238 #endif /* defined(RNG_CR_CED) */
glebiuskv 0:2f0e1e23c242 239
glebiuskv 0:2f0e1e23c242 240
glebiuskv 0:2f0e1e23c242 241 /**
glebiuskv 0:2f0e1e23c242 242 * @}
glebiuskv 0:2f0e1e23c242 243 */
glebiuskv 0:2f0e1e23c242 244
glebiuskv 0:2f0e1e23c242 245 /** @defgroup RNG_LL_EF_FLAG_Management FLAG Management
glebiuskv 0:2f0e1e23c242 246 * @{
glebiuskv 0:2f0e1e23c242 247 */
glebiuskv 0:2f0e1e23c242 248
glebiuskv 0:2f0e1e23c242 249 /**
glebiuskv 0:2f0e1e23c242 250 * @brief Indicate if the RNG Data ready Flag is set or not
glebiuskv 0:2f0e1e23c242 251 * @rmtoll SR DRDY LL_RNG_IsActiveFlag_DRDY
glebiuskv 0:2f0e1e23c242 252 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 253 * @retval State of bit (1 or 0).
glebiuskv 0:2f0e1e23c242 254 */
glebiuskv 0:2f0e1e23c242 255 __STATIC_INLINE uint32_t LL_RNG_IsActiveFlag_DRDY(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 256 {
glebiuskv 0:2f0e1e23c242 257 return (READ_BIT(RNGx->SR, RNG_SR_DRDY) == (RNG_SR_DRDY));
glebiuskv 0:2f0e1e23c242 258 }
glebiuskv 0:2f0e1e23c242 259
glebiuskv 0:2f0e1e23c242 260 /**
glebiuskv 0:2f0e1e23c242 261 * @brief Indicate if the Clock Error Current Status Flag is set or not
glebiuskv 0:2f0e1e23c242 262 * @rmtoll SR CECS LL_RNG_IsActiveFlag_CECS
glebiuskv 0:2f0e1e23c242 263 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 264 * @retval State of bit (1 or 0).
glebiuskv 0:2f0e1e23c242 265 */
glebiuskv 0:2f0e1e23c242 266 __STATIC_INLINE uint32_t LL_RNG_IsActiveFlag_CECS(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 267 {
glebiuskv 0:2f0e1e23c242 268 return (READ_BIT(RNGx->SR, RNG_SR_CECS) == (RNG_SR_CECS));
glebiuskv 0:2f0e1e23c242 269 }
glebiuskv 0:2f0e1e23c242 270
glebiuskv 0:2f0e1e23c242 271 /**
glebiuskv 0:2f0e1e23c242 272 * @brief Indicate if the Seed Error Current Status Flag is set or not
glebiuskv 0:2f0e1e23c242 273 * @rmtoll SR SECS LL_RNG_IsActiveFlag_SECS
glebiuskv 0:2f0e1e23c242 274 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 275 * @retval State of bit (1 or 0).
glebiuskv 0:2f0e1e23c242 276 */
glebiuskv 0:2f0e1e23c242 277 __STATIC_INLINE uint32_t LL_RNG_IsActiveFlag_SECS(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 278 {
glebiuskv 0:2f0e1e23c242 279 return (READ_BIT(RNGx->SR, RNG_SR_SECS) == (RNG_SR_SECS));
glebiuskv 0:2f0e1e23c242 280 }
glebiuskv 0:2f0e1e23c242 281
glebiuskv 0:2f0e1e23c242 282 /**
glebiuskv 0:2f0e1e23c242 283 * @brief Indicate if the Clock Error Interrupt Status Flag is set or not
glebiuskv 0:2f0e1e23c242 284 * @rmtoll SR CEIS LL_RNG_IsActiveFlag_CEIS
glebiuskv 0:2f0e1e23c242 285 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 286 * @retval State of bit (1 or 0).
glebiuskv 0:2f0e1e23c242 287 */
glebiuskv 0:2f0e1e23c242 288 __STATIC_INLINE uint32_t LL_RNG_IsActiveFlag_CEIS(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 289 {
glebiuskv 0:2f0e1e23c242 290 return (READ_BIT(RNGx->SR, RNG_SR_CEIS) == (RNG_SR_CEIS));
glebiuskv 0:2f0e1e23c242 291 }
glebiuskv 0:2f0e1e23c242 292
glebiuskv 0:2f0e1e23c242 293 /**
glebiuskv 0:2f0e1e23c242 294 * @brief Indicate if the Seed Error Interrupt Status Flag is set or not
glebiuskv 0:2f0e1e23c242 295 * @rmtoll SR SEIS LL_RNG_IsActiveFlag_SEIS
glebiuskv 0:2f0e1e23c242 296 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 297 * @retval State of bit (1 or 0).
glebiuskv 0:2f0e1e23c242 298 */
glebiuskv 0:2f0e1e23c242 299 __STATIC_INLINE uint32_t LL_RNG_IsActiveFlag_SEIS(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 300 {
glebiuskv 0:2f0e1e23c242 301 return (READ_BIT(RNGx->SR, RNG_SR_SEIS) == (RNG_SR_SEIS));
glebiuskv 0:2f0e1e23c242 302 }
glebiuskv 0:2f0e1e23c242 303
glebiuskv 0:2f0e1e23c242 304 /**
glebiuskv 0:2f0e1e23c242 305 * @brief Clear Clock Error interrupt Status (CEIS) Flag
glebiuskv 0:2f0e1e23c242 306 * @rmtoll SR CEIS LL_RNG_ClearFlag_CEIS
glebiuskv 0:2f0e1e23c242 307 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 308 * @retval None
glebiuskv 0:2f0e1e23c242 309 */
glebiuskv 0:2f0e1e23c242 310 __STATIC_INLINE void LL_RNG_ClearFlag_CEIS(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 311 {
glebiuskv 0:2f0e1e23c242 312 WRITE_REG(RNGx->SR, ~RNG_SR_CEIS);
glebiuskv 0:2f0e1e23c242 313 }
glebiuskv 0:2f0e1e23c242 314
glebiuskv 0:2f0e1e23c242 315 /**
glebiuskv 0:2f0e1e23c242 316 * @brief Clear Seed Error interrupt Status (SEIS) Flag
glebiuskv 0:2f0e1e23c242 317 * @rmtoll SR SEIS LL_RNG_ClearFlag_SEIS
glebiuskv 0:2f0e1e23c242 318 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 319 * @retval None
glebiuskv 0:2f0e1e23c242 320 */
glebiuskv 0:2f0e1e23c242 321 __STATIC_INLINE void LL_RNG_ClearFlag_SEIS(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 322 {
glebiuskv 0:2f0e1e23c242 323 WRITE_REG(RNGx->SR, ~RNG_SR_SEIS);
glebiuskv 0:2f0e1e23c242 324 }
glebiuskv 0:2f0e1e23c242 325
glebiuskv 0:2f0e1e23c242 326 /**
glebiuskv 0:2f0e1e23c242 327 * @}
glebiuskv 0:2f0e1e23c242 328 */
glebiuskv 0:2f0e1e23c242 329
glebiuskv 0:2f0e1e23c242 330 /** @defgroup RNG_LL_EF_IT_Management IT Management
glebiuskv 0:2f0e1e23c242 331 * @{
glebiuskv 0:2f0e1e23c242 332 */
glebiuskv 0:2f0e1e23c242 333
glebiuskv 0:2f0e1e23c242 334 /**
glebiuskv 0:2f0e1e23c242 335 * @brief Enable Random Number Generator Interrupt
glebiuskv 0:2f0e1e23c242 336 * (applies for either Seed error, Clock Error or Data ready interrupts)
glebiuskv 0:2f0e1e23c242 337 * @rmtoll CR IE LL_RNG_EnableIT
glebiuskv 0:2f0e1e23c242 338 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 339 * @retval None
glebiuskv 0:2f0e1e23c242 340 */
glebiuskv 0:2f0e1e23c242 341 __STATIC_INLINE void LL_RNG_EnableIT(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 342 {
glebiuskv 0:2f0e1e23c242 343 SET_BIT(RNGx->CR, RNG_CR_IE);
glebiuskv 0:2f0e1e23c242 344 }
glebiuskv 0:2f0e1e23c242 345
glebiuskv 0:2f0e1e23c242 346 /**
glebiuskv 0:2f0e1e23c242 347 * @brief Disable Random Number Generator Interrupt
glebiuskv 0:2f0e1e23c242 348 * (applies for either Seed error, Clock Error or Data ready interrupts)
glebiuskv 0:2f0e1e23c242 349 * @rmtoll CR IE LL_RNG_DisableIT
glebiuskv 0:2f0e1e23c242 350 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 351 * @retval None
glebiuskv 0:2f0e1e23c242 352 */
glebiuskv 0:2f0e1e23c242 353 __STATIC_INLINE void LL_RNG_DisableIT(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 354 {
glebiuskv 0:2f0e1e23c242 355 CLEAR_BIT(RNGx->CR, RNG_CR_IE);
glebiuskv 0:2f0e1e23c242 356 }
glebiuskv 0:2f0e1e23c242 357
glebiuskv 0:2f0e1e23c242 358 /**
glebiuskv 0:2f0e1e23c242 359 * @brief Check if Random Number Generator Interrupt is enabled
glebiuskv 0:2f0e1e23c242 360 * (applies for either Seed error, Clock Error or Data ready interrupts)
glebiuskv 0:2f0e1e23c242 361 * @rmtoll CR IE LL_RNG_IsEnabledIT
glebiuskv 0:2f0e1e23c242 362 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 363 * @retval State of bit (1 or 0).
glebiuskv 0:2f0e1e23c242 364 */
glebiuskv 0:2f0e1e23c242 365 __STATIC_INLINE uint32_t LL_RNG_IsEnabledIT(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 366 {
glebiuskv 0:2f0e1e23c242 367 return (READ_BIT(RNGx->CR, RNG_CR_IE) == (RNG_CR_IE));
glebiuskv 0:2f0e1e23c242 368 }
glebiuskv 0:2f0e1e23c242 369
glebiuskv 0:2f0e1e23c242 370 /**
glebiuskv 0:2f0e1e23c242 371 * @}
glebiuskv 0:2f0e1e23c242 372 */
glebiuskv 0:2f0e1e23c242 373
glebiuskv 0:2f0e1e23c242 374 /** @defgroup RNG_LL_EF_Data_Management Data Management
glebiuskv 0:2f0e1e23c242 375 * @{
glebiuskv 0:2f0e1e23c242 376 */
glebiuskv 0:2f0e1e23c242 377
glebiuskv 0:2f0e1e23c242 378 /**
glebiuskv 0:2f0e1e23c242 379 * @brief Return32-bit Random Number value
glebiuskv 0:2f0e1e23c242 380 * @rmtoll DR RNDATA LL_RNG_ReadRandData32
glebiuskv 0:2f0e1e23c242 381 * @param RNGx RNG Instance
glebiuskv 0:2f0e1e23c242 382 * @retval Generated 32-bit random value
glebiuskv 0:2f0e1e23c242 383 */
glebiuskv 0:2f0e1e23c242 384 __STATIC_INLINE uint32_t LL_RNG_ReadRandData32(RNG_TypeDef *RNGx)
glebiuskv 0:2f0e1e23c242 385 {
glebiuskv 0:2f0e1e23c242 386 return (uint32_t)(READ_REG(RNGx->DR));
glebiuskv 0:2f0e1e23c242 387 }
glebiuskv 0:2f0e1e23c242 388
glebiuskv 0:2f0e1e23c242 389 /**
glebiuskv 0:2f0e1e23c242 390 * @}
glebiuskv 0:2f0e1e23c242 391 */
glebiuskv 0:2f0e1e23c242 392
glebiuskv 0:2f0e1e23c242 393 #if defined(USE_FULL_LL_DRIVER)
glebiuskv 0:2f0e1e23c242 394 /** @defgroup RNG_LL_EF_Init Initialization and de-initialization functions
glebiuskv 0:2f0e1e23c242 395 * @{
glebiuskv 0:2f0e1e23c242 396 */
glebiuskv 0:2f0e1e23c242 397 #if defined(RNG_CR_CED)
glebiuskv 0:2f0e1e23c242 398 ErrorStatus LL_RNG_Init(RNG_TypeDef *RNGx, LL_RNG_InitTypeDef *RNG_InitStruct);
glebiuskv 0:2f0e1e23c242 399 void LL_RNG_StructInit(LL_RNG_InitTypeDef *RNG_InitStruct);
glebiuskv 0:2f0e1e23c242 400 #endif /* defined(RNG_CR_CED) */
glebiuskv 0:2f0e1e23c242 401 ErrorStatus LL_RNG_DeInit(RNG_TypeDef *RNGx);
glebiuskv 0:2f0e1e23c242 402
glebiuskv 0:2f0e1e23c242 403 /**
glebiuskv 0:2f0e1e23c242 404 * @}
glebiuskv 0:2f0e1e23c242 405 */
glebiuskv 0:2f0e1e23c242 406 #endif /* USE_FULL_LL_DRIVER */
glebiuskv 0:2f0e1e23c242 407
glebiuskv 0:2f0e1e23c242 408 /**
glebiuskv 0:2f0e1e23c242 409 * @}
glebiuskv 0:2f0e1e23c242 410 */
glebiuskv 0:2f0e1e23c242 411
glebiuskv 0:2f0e1e23c242 412 /**
glebiuskv 0:2f0e1e23c242 413 * @}
glebiuskv 0:2f0e1e23c242 414 */
glebiuskv 0:2f0e1e23c242 415
glebiuskv 0:2f0e1e23c242 416 #endif /* defined(RNG) */
glebiuskv 0:2f0e1e23c242 417
glebiuskv 0:2f0e1e23c242 418 /**
glebiuskv 0:2f0e1e23c242 419 * @}
glebiuskv 0:2f0e1e23c242 420 */
glebiuskv 0:2f0e1e23c242 421
glebiuskv 0:2f0e1e23c242 422 #ifdef __cplusplus
glebiuskv 0:2f0e1e23c242 423 }
glebiuskv 0:2f0e1e23c242 424 #endif
glebiuskv 0:2f0e1e23c242 425
glebiuskv 0:2f0e1e23c242 426 #endif /* __STM32L4xx_LL_RNG_H */
glebiuskv 0:2f0e1e23c242 427
glebiuskv 0:2f0e1e23c242 428 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/