13 STM32-随机数发生器 (RNG)

这篇具有很好参考价值的文章主要介绍了13 STM32-随机数发生器 (RNG)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

13.1 随机数发生器 (RNG)简介

RNG 处理器是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个 32 位的随机数.
RNG 提供由模拟量发生器产生的 32 位随机数,两个连续随机数的间隔为 40 个 PLL48CLK 时钟信号周期

13.2 RNG框图

13 STM32-随机数发生器 (RNG),STM32,stm32,嵌入式硬件,单片机

随机数发生器采用模拟电路实现。模拟电路会源源不断的产生随机数的种子,并放入LFSR中,当将大量种子引入 RNG_LFSR 后,RNG_LFSR 的内容会传入数据寄存器 (RNG_DR),即产生了随机数。同时,系统会监视模拟种子和专用时钟 PLL48CLK。状态位(RNG_SR 寄存器中)指示何时在种子上出现异常序列,或指示何时 PLL48CLK 时钟频率过低。检测到错误或生成随机数时可以生成中断。
如果 CEIS 位的值为 1(时钟错误)出现时钟错误时,RNG 无法再产生随机数,因为 PLL48CLK 时钟不正确。此时应检查时钟控制器是否正确配置,是否可提供 RNG 时钟,然后将 CEIS 位清零。当 CECS 位为 0 时,RNG 可正常工作。时钟错误对产生的上一个随机数没有影响,RNG_DR 寄存器内容可以使用。
如果 SEIS 位的值为 1(种子错误)出现种子错误时,只要 SECS 位为 1,就会中断随机数产生。如果 RNG_DR 寄存器中有可用随机数,不能使用该随机数,因为它可能没有足够的熵。
应执行以下操作:将 SEIS 位清零,然后将 RNGEN 位清零并置 1,以便重新初始化和重新启动 RNG。
13.3 寄存器
13 STM32-随机数发生器 (RNG),STM32,stm32,嵌入式硬件,单片机
13 STM32-随机数发生器 (RNG),STM32,stm32,嵌入式硬件,单片机13 STM32-随机数发生器 (RNG),STM32,stm32,嵌入式硬件,单片机

13.4 示例

#include "stm32f4xx.h"
#include "usart.h"
#include "delay.h"


void RngInit()
{
    RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG,ENABLE); // 使能随机数时钟
    RNG_Cmd(ENABLE); // 命令开始
    RNG_ITConfig(ENABLE); // 使能中断
}


int main(void)
{
    uint32_t t=0;
    uart_init(38400);
    delay_init(168);
    RngInit();

    while(1)
    {
        t = RNG_GetRandomNumber();
        printf("t:%d\r\n",t);
        delay_ms(1000);
    }
}

// 随机数发生错误中断
void HASH_RNG_IRQHandler()
{
    if(RNG_GetITStatus(RNG_IT_CEI))
    {
        RNG_ClearITPendingBit(RNG_IT_CEI);
        while(1);
    }
    
    if(RNG_GetITStatus(RNG_IT_SEI))
    {
        RNG_ClearITPendingBit(RNG_IT_SEI);
        while(1);
    }
}

结果:
串口输出随机数,1秒一个
t:1022588955
t:-657224238
t:749173973
t:1695776011
t:59840523
t:963349731
t:146175500
t:-1360248947
t:1275759650
t:-1859302243
t:-971661004
t:1853953939
t:-72955338
t:-465182740
t:1388639291
t:-1443259421
t:121775036
t:815789949
t:1291676023
t:867471519
t:-1935526956文章来源地址https://www.toymoban.com/news/detail-817509.html

到了这里,关于13 STM32-随机数发生器 (RNG)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 产生随机数方式

    C语言的stdlib.h库里的srand(unsigned seed)和rand(void)函数,可以配合产生伪随机数。其中srand(seed)产生算法种子,再由rand()通过算法产生随机数,产生的随机数在宏定义RAND_MAX范围内。如果seed不变,则产生的随机数不变。 这里介绍STM32 HAL库环境的随机数产生代码,采用STM32CUBEIDE开发

    2024年02月09日
    浏览(45)
  • 【STM32+cubemx】0030 HAL库开发:DDS芯片AD9833实现简单的波形发生器

    大家好,我是学电子的小白白,今天带大家了解一款波形发生器芯片——AD9833。 AD9833是AD公司出品的一款DDS波形发生器,能够产生正弦波、三角波和方波输出。 通俗来讲,DDS是一种把波形预先存储在芯片内部的DAC,只要设置好它的工作频率,就能按这个频率来输出特定的波形

    2024年02月02日
    浏览(41)
  • 蓝桥杯单片机学习13——NE555方波发生器&频率测量

    NE555是一种高度稳定的控制器,内部用三个阻值为5KΩ的电阻分压,因此叫做555芯片。能够产生精确的定时脉冲。单稳态工作时,延时由一个外部电阻和一个电容控制。工作稳定,频率和占空比由两个外部电阻和一个电容器精确控制。具有以下特点: 【1】:大电流驱动能力(

    2024年02月03日
    浏览(32)
  • 计算机组成原理32位MIPS CPU设计实验(指令译码器电路设计 、时序发生器状态机设计、时序发生器输出函数、硬布线控制器)

    这次实验是32位MIPS CPU设计实验(单总线CPU-定长指令周期-3级时序),在头歌当中一共需要我们进行六道题的测试,分别为MIPS指令译码器设计,定长指令周期(时序发生FSM设计,时序发生器输出函数设计,硬布线控制器,单总线CPU设计),硬布线控制器组合逻辑单元。其中由于

    2024年02月02日
    浏览(40)
  • 多路波形发生器的控制

            本次波形发生器,主要使用运算放大器、NE555以及一些其他的电阻电容器件来实现。整体电路图如下所示: 产生的三角波如下: 正弦波如下 方波如下: 运算放大器(Operational Amplifier,简称OP-AMP)是一种重要的电子放大器,常用于模拟电路和信号处理电路中。它是

    2024年02月09日
    浏览(39)
  • Verilog设计_序列发生器

    一种序列信号发生器设计,周期性进行输出。 目录 一、序列发生器 二、代码实现 序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号,能产生这种信号的逻辑器件则称为序列发生器。在设计中有些时候会需用使用某些非常特殊的数字信号,一般情况下就将这

    2024年02月09日
    浏览(40)
  • Verilog | M序列发生器

    m序列 :最长线性反馈移位寄存器序列的简称。是一种反馈移位型结构的电路,由n个移位寄存器加异或反馈网络组成,反馈多项式为本原多项式,其最大序列长度 M = 2 n − 1 M = 2^n-1 M = 2 n − 1 。是一种伪随机序列、伪噪声码。 伪随机序列:不能预先确定但可以重复实现的序列

    2024年02月07日
    浏览(33)
  • proteus——555 PWM 发生器

    什么是 PWM 信号? 脉宽调制(PWM)是一种数字信号,最常用于控制电路。该信号在预定义的时间和速度内设置为高(5v)和低(0v)。信号保持高电平的时间称为\\\"导通时间\\\",信号保持低电平的时间称为\\\"关断时间\\\"。PWM 有两个重要参数,如下所述: PWM 的占空比: PWM信号保持高

    2024年02月07日
    浏览(33)
  • 基于uA741 PWM发生器

    一、实验要求 二、设计任务与要求 三、设计实验报告要求 一、实验要求 查阅资料,确定方案 用 Multisim 进行验证,并 打印电路、输出波形、元器件参数表 电路基于 uA741 集成运算放大器构成 要求电路 震荡频率为300Hz , 输出电压峰峰值为14v 二、设计任务与要求 设计一个占

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包