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】随机数发生器相关函数和类型相关推荐

  1. 【STM32】RTC相关函数和类型

    00. 目录 文章目录 00. 目录 01. 概述 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. 概述 RTC相关函数和类型主要在stm32 ...

  2. 【STM32】GPIO相关函数和类型

    00. 目录 文章目录 00. 目录 01. GPIO固件库概述 02. GPIO相关类型 03. GPIO相关宏 04. GPIO相关函数 05. GPIO其它相关 06. 附录 07. 声明 01 ...

  3. 【STM32】SPI相关函数和类型

    00. 目录 文章目录 00. 目录 01. SPI简介 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. SPI简介 SPI 是英语 Seri ...

  4. 【STM32】I2C相关函数和类型

    00. 目录 文章目录 00. 目录 01. I2C简介 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. I2C简介 I2C(内部集成电路)总 ...

  5. 【STM32】DMA相关函数和类型

    00. 目录 文章目录 00. 目录 01. DMA简介 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. DMA简介 DMA,全称为:Dire ...

  6. 【STM32】DAC相关函数和类型

    00. 目录 文章目录 00. 目录 01. DAC简介 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. DAC简介 STM32F4的DAC模 ...

  7. 【STM32】低功耗相关函数和类型

    00. 目录 文章目录 00. 目录 01. 概述 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. 概述 很多单片机都有低功耗模式,STM32 ...

  8. 【STM32】FSMC相关函数和类型

    00. 目录 文章目录 00. 目录 01. 概述 02. 相关类型 03. 相关函数 04. 结构体封装 05. 预留 06. 附录 07. 声明 01. 概述 FSMC 相关的库函数分布在 stm ...

  9. 【STM32】定时器相关函数和类型

    00. 目录 文章目录 00. 目录 01. TIM概述 02. 相关类型 03. 相关函数 04. 结构体封装 05. 附录 06. 声明 01. TIM概述 stm32f4xx_tim.h和stm ...

最新文章

  1. android ImageButton的图片怎么定义?
  2. 32位 shell.efi x86_Ubuntu 20.04 LTS或不再支持32位x86 (i386)
  3. 使用ffmpeg视频切片并加密
  4. jquery find 找到frame select_简述jQuery
  5. CNN框架的搭建及各个参数的调节
  6. Maven 打成 Webjar的方法
  7. github仓库建立及配置教程新手教程
  8. 4道过滤菜鸟的iOS面试题
  9. Thread+Handler 线程 消息循环(转载)
  10. 艾肯声卡VST新款驱动下载自带机架效果无需做跳线_小伙音频工作室分享
  11. idea vscode快捷键
  12. Java二叉树前序遍历
  13. Flink 实时计算 - 进阶篇(如何自定义 Data Source 与 Data Sink)
  14. CF417D--- Cunning Gena(序列+像缩进dp)
  15. Error: A <Route> is only ever to be used as the child of <Routes> element, never rendereddirectly
  16. Just some wierd thoughts
  17. Three.js入门教程
  18. WebGL 水波及焦散(刻蚀)的渲染总结
  19. Linux磁盘分区的详细步骤(图解linux分区命令使用方法)
  20. 实验6 蓝桥ROS1使用moveit 适用kinetic/melodic/noetic

热门文章

  1. Linux下的各文件夹的作用(转)
  2. excel取消隐藏_Excel技巧:批量删除隐藏数据及隐藏工作表
  3. u盘插入linux系统没有反应_linux系统无法挂载U盘
  4. c语言5的阶乘流程图_2020年,5种将死的编程语言!
  5. 阿里巴巴集团2014秋季校园招聘笔试题
  6. Spring MVC如何接收浏览器传递来的请求参数--request--形参--实体类封装
  7. 从CMDB动态获取服务器列表,按照Ansible的约定
  8. Lintcode---统计比给定整数小的数的个数
  9. CCF2016.4 - A题
  10. Spring+Hibernate配置多数据源