[评测分享]
【NUCLEO-U083RC试用】随机数生成模块测试(RNG)
#板卡评测
2067 人阅读
|
0 人回复
|
2024-07-07
TA的每日心情 | 开心 2024-7-7 06:54 |
|---|
签到天数: 2 天 连续签到: 2 天 [LV.1]初来乍到
童生
- 积分
- 62
|
【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 模块测试 初步测试完成。
|
|
|
|
|
|
|
|
|