STM32G474xx HAL 用户手册
函数
外设控制函数
RNG 导出函数

外设控制函数。 更多...

函数

HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber (RNG_HandleTypeDef *hrng, uint32_t *random32bit)
 生成一个32位随机数。
HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber_IT (RNG_HandleTypeDef *hrng)
 以中断模式生成一个32位随机数。
void HAL_RNG_IRQHandler (RNG_HandleTypeDef *hrng)
 处理RNG中断请求。
uint32_t HAL_RNG_ReadLastRandomNumber (const RNG_HandleTypeDef *hrng)
 读取最新生成的随机数。
__weak void HAL_RNG_ReadyDataCallback (RNG_HandleTypeDef *hrng, uint32_t random32bit)
 非阻塞模式下的数据就绪回调。
__weak void HAL_RNG_ErrorCallback (RNG_HandleTypeDef *hrng)
 RNG错误回调。

详细描述

外设控制函数。

 ===============================================================================
                      ##### Peripheral Control functions #####
 ===============================================================================
    [..]  This section provides functions allowing to:
      (+) Get the 32 bit Random number
      (+) Get the 32 bit Random number with interrupt enabled
      (+) Handle RNG interrupt request


函数文档

RNG错误回调。

参数:
hrng指向包含RNG配置信息的RNG_HandleTypeDef结构体的指针。
返回值:

定义在文件 stm32g4xx_hal_rng.c 的第764行。

引用 UNUSED

HAL_RNG_Init()HAL_RNG_IRQHandler()HAL_RNG_UnRegisterCallback() 引用。

HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber ( RNG_HandleTypeDef hrng,
uint32_t *  random32bit 
)

生成一个32位随机数。

注意:
此函数检查RNG_FLAG_DRDY标志的值,以确定DR寄存器中是否有有效的随机数可用(每当通过RNG_DR寄存器有随机数可用时,RNG_FLAG_DRDY标志置位)。当从0变为1(随机数可用)后,RNG_FLAG_DRDY标志保持高电平,直到从RNG_DR寄存器读取四个字后输出缓冲区变空,即进一步的函数调用将立即返回一个新的u32随机数(附加字可用,应用程序可以读取,直到RNG_FLAG_DRDY标志保持高电平)。
当DR寄存器中没有更多随机数数据可用时,RNG_FLAG_DRDY标志自动清除。
参数:
hrng指向包含RNG配置信息的RNG_HandleTypeDef结构体的指针。
random32bit指向成功时生成的随机数变量的指针。
返回值:
HAL状态

定义在文件 stm32g4xx_hal_rng.c 的第549行。

引用 __HAL_RNG_GET_FLAG__RNG_HandleTypeDef::ErrorCodeHAL_GetTick()HAL_RNG_ERROR_BUSYHAL_RNG_ERROR_TIMEOUTHAL_RNG_STATE_BUSYHAL_RNG_STATE_READY__RNG_HandleTypeDef::Instance__RNG_HandleTypeDef::RandomNumberRNG_FLAG_DRDYRNG_TIMEOUT_VALUE__RNG_HandleTypeDef::State

HAL_StatusTypeDef HAL_RNG_GenerateRandomNumber_IT ( RNG_HandleTypeDef hrng)

以中断模式生成一个32位随机数。

参数:
hrng指向包含RNG配置信息的RNG_HandleTypeDef结构体的指针。
返回值:
HAL状态

定义在文件 stm32g4xx_hal_rng.c 的第607行。

引用 __HAL_RNG_ENABLE_IT__RNG_HandleTypeDef::ErrorCodeHAL_RNG_ERROR_BUSYHAL_RNG_STATE_BUSYHAL_RNG_STATE_READY__RNG_HandleTypeDef::State

处理RNG中断请求。

注意:
如果发生时钟错误,RNG将无法再生成随机数,因为PLL48CLK时钟不正确。用户必须检查时钟控制器是否正确配置以提供RNG时钟,并使用__HAL_RNG_CLEAR_IT()清除CEIS位。时钟错误对之前生成的随机数没有影响,并且RNG_DR寄存器的内容可以使用。
如果发生种子错误,只要SECS位为'1',随机数的生成就会中断。如果RNG_DR寄存器中有一个数字可用,则不应使用它,因为它可能没有足够的熵。在这种情况下,建议使用__HAL_RNG_CLEAR_IT()清除SEIS位,然后禁用并启用RNG外设以重新初始化并重启RNG。
无论设置了SEIS还是CEIS,都将调用用户编写的HAL_RNG_ErrorCallback() API一次。
参数:
hrng指向包含RNG配置信息的RNG_HandleTypeDef结构体的指针。
返回值:

定义在文件 stm32g4xx_hal_rng.c 的第656行。

引用 __HAL_RNG_CLEAR_IT__HAL_RNG_DISABLE_IT__RNG_HandleTypeDef::ErrorCallback__RNG_HandleTypeDef::ErrorCodeHAL_RNG_ERROR_CLOCKHAL_RNG_ERROR_SEEDHAL_RNG_ErrorCallback()HAL_RNG_ReadyDataCallback()HAL_RNG_STATE_ERRORHAL_RNG_STATE_READY__RNG_HandleTypeDef::Instance__RNG_HandleTypeDef::RandomNumber__RNG_HandleTypeDef::ReadyDataCallbackRNG_IT_CEIRNG_IT_DRDYRNG_IT_SEI__RNG_HandleTypeDef::State

uint32_t HAL_RNG_ReadLastRandomNumber ( const RNG_HandleTypeDef hrng)

读取最新生成的随机数。

参数:
hrng指向包含RNG配置信息的RNG_HandleTypeDef结构体的指针。
返回值:
随机

定义在文件 stm32g4xx_hal_rng.c 的第731行。

引用 __RNG_HandleTypeDef::RandomNumber

void HAL_RNG_ReadyDataCallback ( RNG_HandleTypeDef hrng,
uint32_t  random32bit 
)

非阻塞模式下的数据就绪回调。

注意:
当RNG_FLAG_DRDY标志置位时,第一个随机数已在IRQ处理程序中从DR寄存器读取,并作为回调参数提供。根据条件输出缓冲区中可用有效数据的数量,应用程序可以从DR寄存器读取更多字,直到DRDY位保持高电平。
参数:
hrng指向包含RNG配置信息的RNG_HandleTypeDef结构体的指针。
random32bit生成的随机数。
<