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
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 172:65be27845400 1 /**
AnnaBridge 172:65be27845400 2 ******************************************************************************
AnnaBridge 172:65be27845400 3 * @file stm32h7xx_hal_rng.h
AnnaBridge 172:65be27845400 4 * @author MCD Application Team
AnnaBridge 172:65be27845400 5 * @brief Header file of RNG HAL module.
AnnaBridge 172:65be27845400 6 ******************************************************************************
AnnaBridge 172:65be27845400 7 * @attention
AnnaBridge 172:65be27845400 8 *
AnnaBridge 172:65be27845400 9 * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
AnnaBridge 172:65be27845400 10 * All rights reserved.</center></h2>
AnnaBridge 172:65be27845400 11 *
AnnaBridge 172:65be27845400 12 * This software component is licensed by ST under BSD 3-Clause license,
AnnaBridge 172:65be27845400 13 * the "License"; You may not use this file except in compliance with the
AnnaBridge 172:65be27845400 14 * License. You may obtain a copy of the License at:
AnnaBridge 172:65be27845400 15 * opensource.org/licenses/BSD-3-Clause
AnnaBridge 172:65be27845400 16 *
AnnaBridge 172:65be27845400 17 ******************************************************************************
AnnaBridge 172:65be27845400 18 */
AnnaBridge 172:65be27845400 19
AnnaBridge 172:65be27845400 20 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 172:65be27845400 21 #ifndef STM32H7xx_HAL_RNG_H
AnnaBridge 172:65be27845400 22 #define STM32H7xx_HAL_RNG_H
AnnaBridge 172:65be27845400 23
AnnaBridge 172:65be27845400 24 #ifdef __cplusplus
AnnaBridge 172:65be27845400 25 extern "C" {
AnnaBridge 172:65be27845400 26 #endif
AnnaBridge 172:65be27845400 27
AnnaBridge 172:65be27845400 28 /* Includes ------------------------------------------------------------------*/
AnnaBridge 172:65be27845400 29 #include "stm32h7xx_hal_def.h"
AnnaBridge 172:65be27845400 30
AnnaBridge 172:65be27845400 31 /** @addtogroup STM32H7xx_HAL_Driver
AnnaBridge 172:65be27845400 32 * @{
AnnaBridge 172:65be27845400 33 */
AnnaBridge 172:65be27845400 34
AnnaBridge 172:65be27845400 35 #if defined (RNG)
AnnaBridge 172:65be27845400 36
AnnaBridge 172:65be27845400 37 /** @defgroup RNG RNG
AnnaBridge 172:65be27845400 38 * @brief RNG HAL module driver
AnnaBridge 172:65be27845400 39 * @{
AnnaBridge 172:65be27845400 40 */
AnnaBridge 172:65be27845400 41
AnnaBridge 172:65be27845400 42 /* Exported types ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 43
AnnaBridge 172:65be27845400 44 /** @defgroup RNG_Exported_Types RNG Exported Types
AnnaBridge 172:65be27845400 45 * @{
AnnaBridge 172:65be27845400 46 */
AnnaBridge 172:65be27845400 47
AnnaBridge 172:65be27845400 48 /** @defgroup RNG_Exported_Types_Group1 RNG Init Structure definition
AnnaBridge 172:65be27845400 49 * @{
AnnaBridge 172:65be27845400 50 */
AnnaBridge 172:65be27845400 51 typedef struct
AnnaBridge 172:65be27845400 52 {
AnnaBridge 172:65be27845400 53 uint32_t ClockErrorDetection; /*!< CED Clock error detection */
AnnaBridge 172:65be27845400 54 } RNG_InitTypeDef;
AnnaBridge 172:65be27845400 55
AnnaBridge 172:65be27845400 56 /**
AnnaBridge 172:65be27845400 57 * @}
AnnaBridge 172:65be27845400 58 */
AnnaBridge 172:65be27845400 59
AnnaBridge 172:65be27845400 60 /** @defgroup RNG_Exported_Types_Group2 RNG State Structure definition
AnnaBridge 172:65be27845400 61 * @{
AnnaBridge 172:65be27845400 62 */
AnnaBridge 172:65be27845400 63 typedef enum
AnnaBridge 172:65be27845400 64 {
AnnaBridge 172:65be27845400 65 HAL_RNG_STATE_RESET = 0x00U, /*!< RNG not yet initialized or disabled */
AnnaBridge 172:65be27845400 66 HAL_RNG_STATE_READY = 0x01U, /*!< RNG initialized and ready for use */
AnnaBridge 172:65be27845400 67 HAL_RNG_STATE_BUSY = 0x02U, /*!< RNG internal process is ongoing */
AnnaBridge 172:65be27845400 68 HAL_RNG_STATE_TIMEOUT = 0x03U, /*!< RNG timeout state */
AnnaBridge 172:65be27845400 69 HAL_RNG_STATE_ERROR = 0x04U /*!< RNG error state */
AnnaBridge 172:65be27845400 70
AnnaBridge 172:65be27845400 71 } HAL_RNG_StateTypeDef;
AnnaBridge 172:65be27845400 72
AnnaBridge 172:65be27845400 73 /**
AnnaBridge 172:65be27845400 74 * @}
AnnaBridge 172:65be27845400 75 */
AnnaBridge 172:65be27845400 76
AnnaBridge 172:65be27845400 77 /** @defgroup RNG_Exported_Types_Group3 RNG Handle Structure definition
AnnaBridge 172:65be27845400 78 * @{
AnnaBridge 172:65be27845400 79 */
AnnaBridge 172:65be27845400 80 #if (USE_HAL_RNG_REGISTER_CALLBACKS == 1)
AnnaBridge 172:65be27845400 81 typedef struct __RNG_HandleTypeDef
AnnaBridge 172:65be27845400 82 #else
AnnaBridge 172:65be27845400 83 typedef struct
AnnaBridge 172:65be27845400 84 #endif /* (USE_HAL_RNG_REGISTER_CALLBACKS) */
AnnaBridge 172:65be27845400 85 {
AnnaBridge 172:65be27845400 86 RNG_TypeDef *Instance; /*!< Register base address */
AnnaBridge 172:65be27845400 87
AnnaBridge 172:65be27845400 88 RNG_InitTypeDef Init; /*!< RNG configuration parameters */
AnnaBridge 172:65be27845400 89
AnnaBridge 172:65be27845400 90 HAL_LockTypeDef Lock; /*!< RNG locking object */
AnnaBridge 172:65be27845400 91
AnnaBridge 172:65be27845400 92 __IO HAL_RNG_StateTypeDef State; /*!< RNG communication state */
AnnaBridge 172:65be27845400 93
AnnaBridge 172:65be27845400 94 __IO uint32_t ErrorCode; /*!< RNG Error code */
AnnaBridge 172:65be27845400 95
AnnaBridge 172:65be27845400 96 uint32_t RandomNumber; /*!< Last Generated RNG Data */
AnnaBridge 172:65be27845400 97
AnnaBridge 172:65be27845400 98 #if (USE_HAL_RNG_REGISTER_CALLBACKS == 1)
AnnaBridge 172:65be27845400 99 void (* ReadyDataCallback)(struct __RNG_HandleTypeDef *hrng, uint32_t random32bit); /*!< RNG Data Ready Callback */
AnnaBridge 172:65be27845400 100 void (* ErrorCallback)(struct __RNG_HandleTypeDef *hrng); /*!< RNG Error Callback */
AnnaBridge 172:65be27845400 101
AnnaBridge 172:65be27845400 102 void (* MspInitCallback)(struct __RNG_HandleTypeDef *hrng); /*!< RNG Msp Init callback */
AnnaBridge 172:65be27845400 103 void (* MspDeInitCallback)(struct __RNG_HandleTypeDef *hrng); /*!< RNG Msp DeInit callback */
AnnaBridge 172:65be27845400 104 #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
AnnaBridge 172:65be27845400 105
AnnaBridge 172:65be27845400 106 } RNG_HandleTypeDef;
AnnaBridge 172:65be27845400 107
AnnaBridge 172:65be27845400 108 #if (USE_HAL_RNG_REGISTER_CALLBACKS == 1)
AnnaBridge 172:65be27845400 109 /**
AnnaBridge 172:65be27845400 110 * @brief HAL RNG Callback ID enumeration definition
AnnaBridge 172:65be27845400 111 */
AnnaBridge 172:65be27845400 112 typedef enum
AnnaBridge 172:65be27845400 113 {
AnnaBridge 172:65be27845400 114 HAL_RNG_ERROR_CB_ID = 0x00U, /*!< RNG Error Callback ID */
AnnaBridge 172:65be27845400 115
AnnaBridge 172:65be27845400 116 HAL_RNG_MSPINIT_CB_ID = 0x01U, /*!< RNG MspInit callback ID */
AnnaBridge 172:65be27845400 117 HAL_RNG_MSPDEINIT_CB_ID = 0x02U /*!< RNG MspDeInit callback ID */
AnnaBridge 172:65be27845400 118
AnnaBridge 172:65be27845400 119 } HAL_RNG_CallbackIDTypeDef;
AnnaBridge 172:65be27845400 120
AnnaBridge 172:65be27845400 121 /**
AnnaBridge 172:65be27845400 122 * @brief HAL RNG Callback pointer definition
AnnaBridge 172:65be27845400 123 */
AnnaBridge 172:65be27845400 124 typedef void (*pRNG_CallbackTypeDef)(RNG_HandleTypeDef *hrng); /*!< pointer to a common RNG callback function */
AnnaBridge 172:65be27845400 125 typedef void (*pRNG_ReadyDataCallbackTypeDef)(RNG_HandleTypeDef *hrng, uint32_t random32bit); /*!< pointer to an RNG Data Ready specific callback function */
AnnaBridge 172:65be27845400 126
AnnaBridge 172:65be27845400 127 #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
AnnaBridge 172:65be27845400 128
AnnaBridge 172:65be27845400 129 /**
AnnaBridge 172:65be27845400 130 * @}
AnnaBridge 172:65be27845400 131 */
AnnaBridge 172:65be27845400 132
AnnaBridge 172:65be27845400 133 /**
AnnaBridge 172:65be27845400 134 * @}
AnnaBridge 172:65be27845400 135 */
AnnaBridge 172:65be27845400 136
AnnaBridge 172:65be27845400 137 /* Exported constants --------------------------------------------------------*/
AnnaBridge 172:65be27845400 138 /** @defgroup RNG_Exported_Constants RNG Exported Constants
AnnaBridge 172:65be27845400 139 * @{
AnnaBridge 172:65be27845400 140 */
AnnaBridge 172:65be27845400 141
AnnaBridge 172:65be27845400 142 /** @defgroup RNG_Exported_Constants_Group1 RNG Interrupt definition
AnnaBridge 172:65be27845400 143 * @{
AnnaBridge 172:65be27845400 144 */
AnnaBridge 172:65be27845400 145 #define RNG_IT_DRDY RNG_SR_DRDY /*!< Data Ready interrupt */
AnnaBridge 172:65be27845400 146 #define RNG_IT_CEI RNG_SR_CEIS /*!< Clock error interrupt */
AnnaBridge 172:65be27845400 147 #define RNG_IT_SEI RNG_SR_SEIS /*!< Seed error interrupt */
AnnaBridge 172:65be27845400 148 /**
AnnaBridge 172:65be27845400 149 * @}
AnnaBridge 172:65be27845400 150 */
AnnaBridge 172:65be27845400 151
AnnaBridge 172:65be27845400 152 /** @defgroup RNG_Exported_Constants_Group2 RNG Flag definition
AnnaBridge 172:65be27845400 153 * @{
AnnaBridge 172:65be27845400 154 */
AnnaBridge 172:65be27845400 155 #define RNG_FLAG_DRDY RNG_SR_DRDY /*!< Data ready */
AnnaBridge 172:65be27845400 156 #define RNG_FLAG_CECS RNG_SR_CECS /*!< Clock error current status */
AnnaBridge 172:65be27845400 157 #define RNG_FLAG_SECS RNG_SR_SECS /*!< Seed error current status */
AnnaBridge 172:65be27845400 158 /**
AnnaBridge 172:65be27845400 159 * @}
AnnaBridge 172:65be27845400 160 */
AnnaBridge 172:65be27845400 161
AnnaBridge 172:65be27845400 162 /** @defgroup RNG_Exported_Constants_Group3 RNG Clock Error Detection
AnnaBridge 172:65be27845400 163 * @{
AnnaBridge 172:65be27845400 164 */
AnnaBridge 172:65be27845400 165 #define RNG_CED_ENABLE 0x00000000U /*!< Clock error detection Enabled */
AnnaBridge 172:65be27845400 166 #define RNG_CED_DISABLE RNG_CR_CED /*!< Clock error detection Disabled */
AnnaBridge 172:65be27845400 167 /**
AnnaBridge 172:65be27845400 168 * @}
AnnaBridge 172:65be27845400 169 */
AnnaBridge 172:65be27845400 170
AnnaBridge 172:65be27845400 171 /** @defgroup RNG_Error_Definition RNG Error Definition
AnnaBridge 172:65be27845400 172 * @{
AnnaBridge 172:65be27845400 173 */
AnnaBridge 172:65be27845400 174 #define HAL_RNG_ERROR_NONE 0x00000000U /*!< No error */
AnnaBridge 172:65be27845400 175 #if (USE_HAL_RNG_REGISTER_CALLBACKS == 1)
AnnaBridge 172:65be27845400 176 #define HAL_RNG_ERROR_INVALID_CALLBACK 0x00000001U /*!< Invalid Callback error */
AnnaBridge 172:65be27845400 177 #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
AnnaBridge 172:65be27845400 178 #define HAL_RNG_ERROR_TIMEOUT 0x00000002U /*!< Timeout error */
AnnaBridge 172:65be27845400 179
AnnaBridge 172:65be27845400 180 /**
AnnaBridge 172:65be27845400 181 * @}
AnnaBridge 172:65be27845400 182 */
AnnaBridge 172:65be27845400 183
AnnaBridge 172:65be27845400 184 /**
AnnaBridge 172:65be27845400 185 * @}
AnnaBridge 172:65be27845400 186 */
AnnaBridge 172:65be27845400 187
AnnaBridge 172:65be27845400 188 /* Exported macros -----------------------------------------------------------*/
AnnaBridge 172:65be27845400 189 /** @defgroup RNG_Exported_Macros RNG Exported Macros
AnnaBridge 172:65be27845400 190 * @{
AnnaBridge 172:65be27845400 191 */
AnnaBridge 172:65be27845400 192
AnnaBridge 172:65be27845400 193 /** @brief Reset RNG handle state
AnnaBridge 172:65be27845400 194 * @param __HANDLE__ RNG Handle
AnnaBridge 172:65be27845400 195 * @retval None
AnnaBridge 172:65be27845400 196 */
AnnaBridge 172:65be27845400 197 #if (USE_HAL_RNG_REGISTER_CALLBACKS == 1)
AnnaBridge 172:65be27845400 198 #define __HAL_RNG_RESET_HANDLE_STATE(__HANDLE__) do{ \
AnnaBridge 172:65be27845400 199 (__HANDLE__)->State = HAL_RNG_STATE_RESET; \
AnnaBridge 172:65be27845400 200 (__HANDLE__)->MspInitCallback = NULL; \
AnnaBridge 172:65be27845400 201 (__HANDLE__)->MspDeInitCallback = NULL; \
AnnaBridge 172:65be27845400 202 } while(0U)
AnnaBridge 172:65be27845400 203 #else
AnnaBridge 172:65be27845400 204 #define __HAL_RNG_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_RNG_STATE_RESET)
AnnaBridge 172:65be27845400 205 #endif /*USE_HAL_RNG_REGISTER_CALLBACKS */
AnnaBridge 172:65be27845400 206
AnnaBridge 172:65be27845400 207 /**
AnnaBridge 172:65be27845400 208 * @brief Enables the RNG peripheral.
AnnaBridge 172:65be27845400 209 * @param __HANDLE__ RNG Handle
AnnaBridge 172:65be27845400 210 * @retval None
AnnaBridge 172:65be27845400 211 */
AnnaBridge 172:65be27845400 212 #define __HAL_RNG_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= RNG_CR_RNGEN)
AnnaBridge 172:65be27845400 213
AnnaBridge 172:65be27845400 214 /**
AnnaBridge 172:65be27845400 215 * @brief Disables the RNG peripheral.
AnnaBridge 172:65be27845400 216 * @param __HANDLE__ RNG Handle
AnnaBridge 172:65be27845400 217 * @retval None
AnnaBridge 172:65be27845400 218 */
AnnaBridge 172:65be27845400 219 #define __HAL_RNG_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~RNG_CR_RNGEN)
AnnaBridge 172:65be27845400 220
AnnaBridge 172:65be27845400 221 /**
AnnaBridge 172:65be27845400 222 * @brief Check the selected RNG flag status.
AnnaBridge 172:65be27845400 223 * @param __HANDLE__ RNG Handle
AnnaBridge 172:65be27845400 224 * @param __FLAG__ RNG flag
AnnaBridge 172:65be27845400 225 * This parameter can be one of the following values:
AnnaBridge 172:65be27845400 226 * @arg RNG_FLAG_DRDY: Data ready
AnnaBridge 172:65be27845400 227 * @arg RNG_FLAG_CECS: Clock error current status
AnnaBridge 172:65be27845400 228 * @arg RNG_FLAG_SECS: Seed error current status
AnnaBridge 172:65be27845400 229 * @retval The new state of __FLAG__ (SET or RESET).
AnnaBridge 172:65be27845400 230 */
AnnaBridge 172:65be27845400 231 #define __HAL_RNG_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))
AnnaBridge 172:65be27845400 232
AnnaBridge 172:65be27845400 233 /**
AnnaBridge 172:65be27845400 234 * @brief Clears the selected RNG flag status.
AnnaBridge 172:65be27845400 235 * @param __HANDLE__ RNG handle
AnnaBridge 172:65be27845400 236 * @param __FLAG__ RNG flag to clear
AnnaBridge 172:65be27845400 237 * @note WARNING: This is a dummy macro for HAL code alignment,
AnnaBridge 172:65be27845400 238 * flags RNG_FLAG_DRDY, RNG_FLAG_CECS and RNG_FLAG_SECS are read-only.
AnnaBridge 172:65be27845400 239 * @retval None
AnnaBridge 172:65be27845400 240 */
AnnaBridge 172:65be27845400 241 #define __HAL_RNG_CLEAR_FLAG(__HANDLE__, __FLAG__) /* dummy macro */
AnnaBridge 172:65be27845400 242
AnnaBridge 172:65be27845400 243 /**
AnnaBridge 172:65be27845400 244 * @brief Enables the RNG interrupts.
AnnaBridge 172:65be27845400 245 * @param __HANDLE__ RNG Handle
AnnaBridge 172:65be27845400 246 * @retval None
AnnaBridge 172:65be27845400 247 */
AnnaBridge 172:65be27845400 248 #define __HAL_RNG_ENABLE_IT(__HANDLE__) ((__HANDLE__)->Instance->CR |= RNG_CR_IE)
AnnaBridge 172:65be27845400 249
AnnaBridge 172:65be27845400 250 /**
AnnaBridge 172:65be27845400 251 * @brief Disables the RNG interrupts.
AnnaBridge 172:65be27845400 252 * @param __HANDLE__ RNG Handle
AnnaBridge 172:65be27845400 253 * @retval None
AnnaBridge 172:65be27845400 254 */
AnnaBridge 172:65be27845400 255 #define __HAL_RNG_DISABLE_IT(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~RNG_CR_IE)
AnnaBridge 172:65be27845400 256
AnnaBridge 172:65be27845400 257 /**
AnnaBridge 172:65be27845400 258 * @brief Checks whether the specified RNG interrupt has occurred or not.
AnnaBridge 172:65be27845400 259 * @param __HANDLE__ RNG Handle
AnnaBridge 172:65be27845400 260 * @param __INTERRUPT__ specifies the RNG interrupt status flag to check.
AnnaBridge 172:65be27845400 261 * This parameter can be one of the following values:
AnnaBridge 172:65be27845400 262 * @arg RNG_IT_DRDY: Data ready interrupt
AnnaBridge 172:65be27845400 263 * @arg RNG_IT_CEI: Clock error interrupt
AnnaBridge 172:65be27845400 264 * @arg RNG_IT_SEI: Seed error interrupt
AnnaBridge 172:65be27845400 265 * @retval The new state of __INTERRUPT__ (SET or RESET).
AnnaBridge 172:65be27845400 266 */
AnnaBridge 172:65be27845400 267 #define __HAL_RNG_GET_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->SR & (__INTERRUPT__)) == (__INTERRUPT__))
AnnaBridge 172:65be27845400 268
AnnaBridge 172:65be27845400 269 /**
AnnaBridge 172:65be27845400 270 * @brief Clear the RNG interrupt status flags.
AnnaBridge 172:65be27845400 271 * @param __HANDLE__ RNG Handle
AnnaBridge 172:65be27845400 272 * @param __INTERRUPT__ specifies the RNG interrupt status flag to clear.
AnnaBridge 172:65be27845400 273 * This parameter can be one of the following values:
AnnaBridge 172:65be27845400 274 * @arg RNG_IT_CEI: Clock error interrupt
AnnaBridge 172:65be27845400 275 * @arg RNG_IT_SEI: Seed error interrupt
AnnaBridge 172:65be27845400 276 * @note RNG_IT_DRDY flag is read-only, reading RNG_DR register automatically clears RNG_IT_DRDY.
AnnaBridge 172:65be27845400 277 * @retval None
AnnaBridge 172:65be27845400 278 */
AnnaBridge 172:65be27845400 279 #define __HAL_RNG_CLEAR_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->SR) = ~(__INTERRUPT__))
AnnaBridge 172:65be27845400 280
AnnaBridge 172:65be27845400 281 /**
AnnaBridge 172:65be27845400 282 * @}
AnnaBridge 172:65be27845400 283 */
AnnaBridge 172:65be27845400 284
AnnaBridge 172:65be27845400 285 /* Exported functions --------------------------------------------------------*/
AnnaBridge 172:65be27845400 286 /** @defgroup RNG_Exported_Functions RNG Exported Functions
AnnaBridge 172:65be27845400 287 * @{
AnnaBridge 172:65be27845400 288 */
AnnaBridge 172:65be27845400 289
AnnaBridge 172:65be27845400 290 /** @defgroup RNG_Exported_Functions_Group1 Initialization and configuration functions
AnnaBridge 172:65be27845400 291 * @{
AnnaBridge 172:65be27845400 292 */
AnnaBridge 172:65be27845400 293 HAL_StatusTypeDef HAL_RNG_Init(RNG_HandleTypeDef *hrng);
AnnaBridge 172:65be27845400 294 HAL_StatusTypeDef HAL_RNG_DeInit(RNG_HandleTypeDef *hrng);
AnnaBridge 172:65be27845400 295 void HAL_RNG_MspInit(RNG_HandleTypeDef *hrng);
AnnaBridge 172:65be27845400 296 void HAL_RNG_MspDeInit(RNG_HandleTypeDef *hrng);
AnnaBridge 172:65be27845400 297
AnnaBridge 172:65be27845400 298 /* Callbacks Register/UnRegister functions ***********************************/
AnnaBridge 172:65be27845400 299 #if (USE_HAL_RNG_REGISTER_CALLBACKS == 1)
AnnaBridge 172:65be27845400 300 HAL_StatusTypeDef HAL_RNG_RegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef CallbackID, pRNG_CallbackTypeDef pCallback);
AnnaBridge 172:65be27845400 301 HAL_StatusTypeDef HAL_RNG_UnRegisterCallback(RNG_HandleTypeDef *hrng, HAL_RNG_CallbackIDTypeDef CallbackID);
AnnaBridge 172:65be27845400 302
AnnaBridge 172:65be27845400 303 HAL_StatusTypeDef HAL_RNG_RegisterReadyDataCallback(RNG_HandleTypeDef *hrng, pRNG_ReadyDataCallbackTypeDef pCallback);
AnnaBridge 172:65be27845400 304 HAL_StatusTypeDef HAL_RNG_UnRegisterReadyDataCallback(RNG_HandleTypeDef *hrng);
AnnaBridge 172:65be27845400 305 #endif /* USE_HAL_RNG_REGISTER_CALLBACKS */
AnnaBridge 172:65be27845400 306
AnnaBridge 172:65be27845400 307 /**
AnnaBridge 172:65be27845400 308 * @}
AnnaBridge 172:65be27845400 309 */
AnnaBridge 172:65be27845400 310
AnnaBridge 172:65be27845400 311 /** @defgroup RNG_Exported_Functions_Group2 Peripheral Control functions
AnnaBridge 172:65be27845400 312 * @{
AnnaBridge 172:65be27845400 313 */
AnnaBridge 172:65be27845400 314 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber(RNG_HandleTypeDef *hrng, uint32_t *random32bit);
AnnaBridge 172:65be27845400 315 HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber_IT(RNG_HandleTypeDef *hrng);
AnnaBridge 172:65be27845400 316 uint32_t HAL_RNG_ReadLastRandomNumber(RNG_HandleTypeDef *hrng);
AnnaBridge 172:65be27845400 317
AnnaBridge 172:65be27845400 318 void HAL_RNG_IRQHandler(RNG_HandleTypeDef *hrng);
AnnaBridge 172:65be27845400 319 void HAL_RNG_ErrorCallback(RNG_HandleTypeDef *hrng);
AnnaBridge 172:65be27845400 320 void HAL_RNG_ReadyDataCallback(RNG_HandleTypeDef *hrng, uint32_t random32bit);
AnnaBridge 172:65be27845400 321
AnnaBridge 172:65be27845400 322 /**
AnnaBridge 172:65be27845400 323 * @}
AnnaBridge 172:65be27845400 324 */
AnnaBridge 172:65be27845400 325
AnnaBridge 172:65be27845400 326 /** @defgroup RNG_Exported_Functions_Group3 Peripheral State functions
AnnaBridge 172:65be27845400 327 * @{
AnnaBridge 172:65be27845400 328 */
AnnaBridge 172:65be27845400 329 HAL_RNG_StateTypeDef HAL_RNG_GetState(RNG_HandleTypeDef *hrng);
AnnaBridge 172:65be27845400 330 uint32_t HAL_RNG_GetError(RNG_HandleTypeDef *hrng);
AnnaBridge 172:65be27845400 331 /**
AnnaBridge 172:65be27845400 332 * @}
AnnaBridge 172:65be27845400 333 */
AnnaBridge 172:65be27845400 334
AnnaBridge 172:65be27845400 335 /**
AnnaBridge 172:65be27845400 336 * @}
AnnaBridge 172:65be27845400 337 */
AnnaBridge 172:65be27845400 338
AnnaBridge 172:65be27845400 339 /* Private macros ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 340 /** @defgroup RNG_Private_Macros RNG Private Macros
AnnaBridge 172:65be27845400 341 * @{
AnnaBridge 172:65be27845400 342 */
AnnaBridge 172:65be27845400 343 #define IS_RNG_IT(IT) (((IT) == RNG_IT_CEI) || \
AnnaBridge 172:65be27845400 344 ((IT) == RNG_IT_SEI))
AnnaBridge 172:65be27845400 345
AnnaBridge 172:65be27845400 346 #define IS_RNG_FLAG(FLAG) (((FLAG) == RNG_FLAG_DRDY) || \
AnnaBridge 172:65be27845400 347 ((FLAG) == RNG_FLAG_CECS) || \
AnnaBridge 172:65be27845400 348 ((FLAG) == RNG_FLAG_SECS))
AnnaBridge 172:65be27845400 349
AnnaBridge 172:65be27845400 350 /**
AnnaBridge 172:65be27845400 351 * @brief Verify the RNG Clock Error Detection mode.
AnnaBridge 172:65be27845400 352 * @param __MODE__ RNG Clock Error Detection mode
AnnaBridge 172:65be27845400 353 * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
AnnaBridge 172:65be27845400 354 */
AnnaBridge 172:65be27845400 355 #define IS_RNG_CED(__MODE__) (((__MODE__) == RNG_CED_ENABLE) || \
AnnaBridge 172:65be27845400 356 ((__MODE__) == RNG_CED_DISABLE))
AnnaBridge 172:65be27845400 357 /**
AnnaBridge 172:65be27845400 358 * @}
AnnaBridge 172:65be27845400 359 */
AnnaBridge 172:65be27845400 360
AnnaBridge 172:65be27845400 361 /**
AnnaBridge 172:65be27845400 362 * @}
AnnaBridge 172:65be27845400 363 */
AnnaBridge 172:65be27845400 364
AnnaBridge 172:65be27845400 365 #endif /* RNG */
AnnaBridge 172:65be27845400 366
AnnaBridge 172:65be27845400 367 /**
AnnaBridge 172:65be27845400 368 * @}
AnnaBridge 172:65be27845400 369 */
AnnaBridge 172:65be27845400 370
AnnaBridge 172:65be27845400 371 #ifdef __cplusplus
AnnaBridge 172:65be27845400 372 }
AnnaBridge 172:65be27845400 373 #endif
AnnaBridge 172:65be27845400 374
AnnaBridge 172:65be27845400 375
AnnaBridge 172:65be27845400 376 #endif /* STM32H7xx_HAL_RNG_H */
AnnaBridge 172:65be27845400 377
AnnaBridge 172:65be27845400 378 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/