【STM32】随机数发生器相关函数和类型
00. 目录
文章目录
- 00. 目录
- 01. RNG概述
- 02. 相关类型
- 03. 相关函数
- 04. 结构体封装
- 05. 预留
- 06. 附录
- 07. 声明
01. RNG概述
RNG 处理器是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个 32 位的随机数。
RNG 已通过 FIPS PUB 140-2(2001 年 10 月 10 日)测试,成功率达 99%。
随机数发生器支持库函数stm32f4xx_rng.c 和对应的头文件 stm32f4xx_rng.h。
02. 相关类型
/** @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. 相关函数
/* 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. 结构体封装
/** * @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. 预留
06. 附录
6.1 【STM32】STM32系列教程汇总
网址:【STM32】STM32系列教程汇总
07. 声明
该教程参考了正点原子的《STM32 F4 开发指南》
【STM32】随机数发生器相关函数和类型相关推荐
- 【STM32】RTC相关函数和类型
00. 目录 文章目录 00. 目录 01. 概述 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. 概述 RTC相关函数和类型主要在stm32 ...
- 【STM32】GPIO相关函数和类型
00. 目录 文章目录 00. 目录 01. GPIO固件库概述 02. GPIO相关类型 03. GPIO相关宏 04. GPIO相关函数 05. GPIO其它相关 06. 附录 07. 声明 01 ...
- 【STM32】SPI相关函数和类型
00. 目录 文章目录 00. 目录 01. SPI简介 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. SPI简介 SPI 是英语 Seri ...
- 【STM32】I2C相关函数和类型
00. 目录 文章目录 00. 目录 01. I2C简介 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. I2C简介 I2C(内部集成电路)总 ...
- 【STM32】DMA相关函数和类型
00. 目录 文章目录 00. 目录 01. DMA简介 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. DMA简介 DMA,全称为:Dire ...
- 【STM32】DAC相关函数和类型
00. 目录 文章目录 00. 目录 01. DAC简介 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. DAC简介 STM32F4的DAC模 ...
- 【STM32】低功耗相关函数和类型
00. 目录 文章目录 00. 目录 01. 概述 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. 概述 很多单片机都有低功耗模式,STM32 ...
- 【STM32】FSMC相关函数和类型
00. 目录 文章目录 00. 目录 01. 概述 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. 概述 FSMC 相关的库函数分布在 stm ...
- 【STM32】定时器相关函数和类型
00. 目录 文章目录 00. 目录 01. TIM概述 02. 相关类型 03. 相关函数 04. 结构体封装 05. 附录 06. 声明 01. TIM概述 stm32f4xx_tim.h和stm ...
最新文章
- android ImageButton的图片怎么定义?
- 32位 shell.efi x86_Ubuntu 20.04 LTS或不再支持32位x86 (i386)
- 使用ffmpeg视频切片并加密
- jquery find 找到frame select_简述jQuery
- CNN框架的搭建及各个参数的调节
- Maven 打成 Webjar的方法
- github仓库建立及配置教程新手教程
- 4道过滤菜鸟的iOS面试题
- Thread+Handler 线程 消息循环(转载)
- 艾肯声卡VST新款驱动下载自带机架效果无需做跳线_小伙音频工作室分享
- idea vscode快捷键
- Java二叉树前序遍历
- Flink 实时计算 - 进阶篇(如何自定义 Data Source 与 Data Sink)
- CF417D--- Cunning Gena(序列+像缩进dp)
- Error: A <Route> is only ever to be used as the child of <Routes> element, never rendereddirectly
- Just some wierd thoughts
- Three.js入门教程
- WebGL 水波及焦散(刻蚀)的渲染总结
- Linux磁盘分区的详细步骤(图解linux分区命令使用方法)
- 实验6 蓝桥ROS1使用moveit 适用kinetic/melodic/noetic