回答

收藏

[评测分享] 【NUCLEO-U083RC试用】随机数生成模块测试(RNG)

#板卡评测 #板卡评测 2067 人阅读 | 0 人回复 | 2024-07-07

【NUCLEO-U083RC试用】随机数生成模块测试(RNG)



RNG简介
随机数发生器(Random Number Generators,RNG),用于生成随机数的程序或者硬件。
我们从参考手册RM0503看到RNG更详细的介绍。
   

RNG的主要应用场景
验证码、密码学、概率学、统计学、游戏等

RNG的框图如下:
   


下面我们用CubeMX做一个初始化配置:
打开CubeMX软件,我们使用的开发板型号是NUCLEO-U083RC,我们选择
Start My project from ST Board


输入框中输入STM32U0,选择STM32U0复选框,选中我们的开发板,点击Start Project
   


基于板子接口的一些配置会自动配置好。

我们在Pinout&Configuriaiton下输入RNG后回车, 可以看到RNG在Security选项下面,
我们选中RNG配置栏里面的 Activated复选框。
   



我们点击Clock Configuration,弹窗提醒自动配置,点击Yes   


此时RNG Clock自动配置好

   

Project Manager下设置好工程名字,工程路径后, 点击GENERATE CODE
我们的初始化配置工程生成好了。



之后测试程序编写:
我们可以看到,工程已经为我们进行了RNG模块的初始化,我们进行测试程序编写即可。
  

我们编写的测试程序如下:
void Get_RngNum_test(void)
{
        uint32_t nrng;
        nrng = 0;
        if (HAL_OK == HAL_RNG_GenerateRandomNumber(&hrng,&nrng))
        {
                printf("Get RngNum is %d\r\n",nrng);
        }
        else
        {
                printf("Get RngNum Failed !\r\n");
        }
}

在主函数中进行测试函数的调用

while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
        Get_RngNum_test();

        HAL_Delay(100);
  }

我们把程序编译后, 在开发上进行测试,输出结果如下:

   


RNG 模块测试 初步测试完成。



分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

62 积分
1 主题
+ 关注
热门推荐
关闭

站长推荐上一条 /3 下一条