HAL
Select one of the symbols to view example projects that use it.
Symbol previews are coming soon...
Outline
#define STM32F4xx_HAL_RNG_H
#include "stm32f4xx_hal_def.h"
Exported types
HAL_RNG_StateTypeDef
HAL_RNG_STATE_RESET
HAL_RNG_STATE_READY
HAL_RNG_STATE_BUSY
HAL_RNG_STATE_TIMEOUT
HAL_RNG_STATE_ERROR
RNG_HandleTypeDef
Instance
Lock
State
ErrorCode
RandomNumber
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...
SourceVu
STM32 Libraries and Samples
HAL
Inc/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:
All items filtered out
All items filtered out
This file uses the notable symbols shown below. Click anywhere in the file to view more details.
HAL_RNG_Init()
HAL_RNG_GenerateRandomNumber()
HAL_RNG_DeInit()
HAL_RNG_MspInit()
HAL_RNG_MspDeInit()
HAL_RNG_GetRandomNumber()
HAL_RNG_ErrorCallback()
HAL_RNG_ReadyDataCallback()
HAL_RNG_GetRandomNumber_IT()
HAL_RNG_GenerateRandomNumber_IT()
HAL_RNG_ReadLastRandomNumber()
HAL_RNG_IRQHandler()
HAL_RNG_GetState()
HAL_RNG_GetError()
__IO
RNG_HandleTypeDef
RNG
RNG_HandleTypeDef::Instance
RNG_TypeDef::SR
RNG_TypeDef::CR
RNG_CR_IE
RNG_HandleTypeDef::State
RNG_CR_RNGEN
HAL_RNG_GenerateRandomNumber()::hrng
HAL_RNG_IRQHandler()::hrng
RNG_SR_CEIS
RNG_SR_SEIS
RNG_SR_DRDY
RNG_HandleTypeDef::Lock
HAL_RNG_MspInit()::hrng
HAL_RNG_MspDeInit()::hrng
HAL_RNG_Init()::hrng
HAL_RNG_StateTypeDef
RNG_HandleTypeDef::ErrorCode
HAL_RNG_DeInit()::hrng
RNG_HandleTypeDef::RandomNumber
HAL_RNG_GenerateRandomNumber_IT()::hrng
HAL_RNG_StateTypeDef::HAL_RNG_STATE_READY
HAL_RNG_GetRandomNumber_IT()::hrng
HAL_RNG_StateTypeDef::HAL_RNG_STATE_BUSY
HAL_RNG_GetRandomNumber()::hrng
RNG_IT_CEI
RNG_IT_SEI
HAL_RNG_StateTypeDef::HAL_RNG_STATE_RESET
HAL_RNG_StateTypeDef::HAL_RNG_STATE_ERROR
RNG_IT_DRDY
RNG_FLAG_DRDY
HAL_RNG_ERROR_NONE
HAL_RNG_ERROR_BUSY
__HAL_RNG_GET_FLAG
__HAL_RNG_ENABLE_IT
HAL_RNG_GenerateRandomNumber()::random32bit
HAL_RNG_ReadLastRandomNumber()::hrng
HAL_RNG_ErrorCallback()::hrng
HAL_RNG_ReadyDataCallback()::hrng
HAL_RNG_ReadyDataCallback()::random32bit
HAL_RNG_GetState()::hrng
HAL_RNG_GetError()::hrng
HAL_RNG_ERROR_TIMEOUT
HAL_RNG_ERROR_SEED
HAL_RNG_ERROR_CLOCK
__HAL_RNG_ENABLE
__HAL_RNG_DISABLE_IT
__HAL_RNG_CLEAR_IT
STM32F4xx_HAL_RNG_H
HAL_RNG_StateTypeDef::HAL_RNG_STATE_TIMEOUT
RNG_FLAG_CECS
RNG_FLAG_SECS
__HAL_RNG_RESET_HANDLE_STATE
__HAL_RNG_DISABLE
__HAL_RNG_CLEAR_FLAG
__HAL_RNG_GET_IT
IS_RNG_IT
IS_RNG_FLAG
HAL_RNG_StateTypeDef
RNG_TypeDef
HAL_LockTypeDef
RNG_HandleTypeDef
HAL_StatusTypeDef