查看: 976|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2024-7-7 06:54
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]初来乍到

    发表于 2024-7-7 08:17:25 | 显示全部楼层 |阅读模式
    分享到:
    【NUCLEO-U083RC试用】随机数生成模块测试(RNG)



    RNG简介
    随机数发生器(Random Number Generators,RNG),用于生成随机数的程序或者硬件。
    我们从参考手册RM0503看到RNG更详细的介绍。
        1.png
    RNG的主要应用场景
    验证码、密码学、概率学、统计学、游戏等

    RNG的框图如下:
        2.png

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

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

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

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


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

    此时RNG Clock自动配置好

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



    之后测试程序编写:
    我们可以看到,工程已经为我们进行了RNG模块的初始化,我们进行测试程序编写即可。
       8.png
    我们编写的测试程序如下:
    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);
      }

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

        9.png

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



    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-11-23 18:14 , Processed in 0.113152 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.