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