思澈科技软件开发工具包  2.20
Peripheral Control functions

Macros

#define HAL_RNG_GenerateRandomNumber(hrng, random32bit)   HAL_RNG_Generate(hrng,random32bit,0)
 
#define HAL_RNG_GenerateRandomNumber_IT(hrng, random32bit)   HAL_RNG_Generate_IT(hrng,random32bit,0)
 
#define HAL_RNG_GenerateRandomSeed(hrng, seed32bit)   HAL_RNG_Generate(hrng,seed32bit,1)
 
#define HAL_RNG_GenerateRandomSeed_IT(hrng, seed32bit)   HAL_RNG_Generate_IT(hrng,seed32bit,1)
 

Functions

uint32_t HAL_RNG_ReadLastRandomNumber (RNG_HandleTypeDef *hrng)
 Read latest generated random number. More...
 
HAL_StatusTypeDef HAL_RNG_Generate (RNG_HandleTypeDef *hrng, uint32_t *random32bit, uint8_t is_seed)
 Generate a 32-bit random number or seed. More...
 
HAL_StatusTypeDef HAL_RNG_Generate_IT (RNG_HandleTypeDef *hrng, uint8_t is_seed)
 Generate random number or seed in interrupt mode. More...
 
void HAL_RNG_IRQHandler (RNG_HandleTypeDef *hrng)
 Handle RNG interrupt request. More...
 
void HAL_RNG_RandReadyCallback (RNG_HandleTypeDef *hrng, uint32_t random32bit)
 Random Data Ready callback in non-blocking mode. More...
 
void HAL_RNG_SeedReadyCallback (RNG_HandleTypeDef *hrng, uint32_t seed32bit)
 Random Seed Ready callback in non-blocking mode. More...
 

Detailed Description

Function Documentation

◆ HAL_RNG_Generate()

HAL_StatusTypeDef HAL_RNG_Generate ( RNG_HandleTypeDef hrng,
uint32_t *  random32bit,
uint8_t  is_seed 
)

Generate a 32-bit random number or seed.

Note
Each time the random number data is read the RNG_FLAG_DRDY flag is automatically cleared.
Parameters
hrngpointer to a RNG_HandleTypeDef structure.
random32bitpointer to generated random number variable if successful.
is_seed1:generate seed. 0:Generate random number
Return values
HALstatus

◆ HAL_RNG_Generate_IT()

HAL_StatusTypeDef HAL_RNG_Generate_IT ( RNG_HandleTypeDef hrng,
uint8_t  is_seed 
)

Generate random number or seed in interrupt mode.

Parameters
hrngpointer to a RNG_HandleTypeDef structure.
is_seed1:generate seed. 0:Generate random number
Return values
HALstatus

◆ HAL_RNG_IRQHandler()

void HAL_RNG_IRQHandler ( RNG_HandleTypeDef hrng)

Handle RNG interrupt request.

Note
In the case of a clock error, the RNG is no more able to generate random numbers because the PLL48CLK clock is not correct. User has to check that the clock controller is correctly configured to provide the RNG clock and clear the CEIS bit using __HAL_RNG_CLEAR_IT(). The clock error has no impact on the previously generated random numbers, and the RNG_DR register contents can be used.
In the case of a seed error, the generation of random numbers is interrupted as long as the SECS bit is '1'. If a number is available in the RNG_DR register, it must not be used because it may not have enough entropy. In this case, it is recommended to clear the SEIS bit using __HAL_RNG_CLEAR_IT(), then disable and enable the RNG peripheral to reinitialize and restart the RNG.
RNG ErrorCallback() API is called once whether SEIS or CEIS are set.
Parameters
hrngpointer to a RNG_HandleTypeDef structure.
Return values
None

◆ HAL_RNG_RandReadyCallback()

void HAL_RNG_RandReadyCallback ( RNG_HandleTypeDef hrng,
uint32_t  random32bit 
)

Random Data Ready callback in non-blocking mode.

Parameters
hrngpointer to a RNG_HandleTypeDef structure.
random32bitgenerated random value
Return values
None

◆ HAL_RNG_ReadLastRandomNumber()

uint32_t HAL_RNG_ReadLastRandomNumber ( RNG_HandleTypeDef hrng)

Read latest generated random number.

Parameters
hrngpointer to a RNG_HandleTypeDef structure.
Return values
randomvalue

◆ HAL_RNG_SeedReadyCallback()

void HAL_RNG_SeedReadyCallback ( RNG_HandleTypeDef hrng,
uint32_t  seed32bit 
)

Random Seed Ready callback in non-blocking mode.

Parameters
hrngpointer to a RNG_HandleTypeDef structure.
seed32bitgenerated random seed
Return values
None