[STM32] Funciones y tipos relacionados con el generador de números aleatorios

00. Tabla de contenido

01. Descripción general de RNG

El procesador RNG es un generador de números aleatorios basado en ruido analógico continuo, que proporciona un número aleatorio de 32 bits cuando el host lee.

RNG ha pasado la prueba FIPS PUB 140-2 (10 de octubre de 2001) con una tasa de éxito del 99%.

El generador de números aleatorios admite las funciones de biblioteca stm32f4xx_rng.cy el archivo de encabezado correspondiente stm32f4xx_rng.h.

02. Tipos relacionados

/** @defgroup RNG_flags_definition  
  * @{
  */ 
#define RNG_FLAG_DRDY               ((uint8_t)0x0001) /*!< Data ready */
#define RNG_FLAG_CECS               ((uint8_t)0x0002) /*!< Clock error current status */
#define RNG_FLAG_SECS               ((uint8_t)0x0004) /*!< Seed error current status */

#define IS_RNG_GET_FLAG(RNG_FLAG) (((RNG_FLAG) == RNG_FLAG_DRDY) || \
                                   ((RNG_FLAG) == RNG_FLAG_CECS) || \
                                   ((RNG_FLAG) == RNG_FLAG_SECS))
#define IS_RNG_CLEAR_FLAG(RNG_FLAG) (((RNG_FLAG) == RNG_FLAG_CECS) || \
                                    ((RNG_FLAG) == RNG_FLAG_SECS))
/**
  * @}
  */ 

/** @defgroup RNG_interrupts_definition   
  * @{
  */  
#define RNG_IT_CEI                  ((uint8_t)0x20) /*!< Clock error interrupt */
#define RNG_IT_SEI                  ((uint8_t)0x40) /*!< Seed error interrupt */

#define IS_RNG_IT(IT) ((((IT) & (uint8_t)0x9F) == 0x00) && ((IT) != 0x00))
#define IS_RNG_GET_IT(RNG_IT) (((RNG_IT) == RNG_IT_CEI) || ((RNG_IT) == RNG_IT_SEI))

03. Funciones relacionadas

/*  Function used to set the RNG configuration to the default reset state *****/ 
void RNG_DeInit(void);

/* Configuration function *****************************************************/
void RNG_Cmd(FunctionalState NewState);

/* Get 32 bit Random number function ******************************************/
uint32_t RNG_GetRandomNumber(void);

/* Interrupts and flags management functions **********************************/
void RNG_ITConfig(FunctionalState NewState);
FlagStatus RNG_GetFlagStatus(uint8_t RNG_FLAG);
void RNG_ClearFlag(uint8_t RNG_FLAG);
ITStatus RNG_GetITStatus(uint8_t RNG_IT);
void RNG_ClearITPendingBit(uint8_t RNG_IT);

04. Paquete de estructura

/** 
  * @brief RNG
  */
  
typedef struct 
{
    
    
  __IO uint32_t CR;  /*!< RNG control register, Address offset: 0x00 */
  __IO uint32_t SR;  /*!< RNG status register,  Address offset: 0x04 */
  __IO uint32_t DR;  /*!< RNG data register,    Address offset: 0x08 */
} RNG_TypeDef;

05. Reservado

06. Apéndice

6.1 [STM32] Resumen del tutorial de la serie STM32

Sitio web: [STM32] Resumen del tutorial de la serie STM32

07. Declaración

Este tutorial hace referencia a la "Guía de desarrollo STM32 F4" de Punctual Atom

Supongo que te gusta

Origin blog.csdn.net/dengjin20104042056/article/details/108507504
Recomendado
Clasificación