随机数的产生

徽信管理团队 · 218次点击 · 9个月前

鉴于有些客户问我们芯片是否支持随机数的产生,以及接口函数是怎么调用的。现介绍如下:

1、头文件检查#include <stdlib.h>

2、真随机数种子生成函数:pmu_random_seed_fetch(上一个随机数);

2、随机数种子函数:srand(32位的整形数据);

3、随机数的产生:rand();

使用举例:

void rand_test(void)

{

uint32_t i, rand_seed_true, rand_seed_temp;

uint32_t random_numbers[10];

//利用一个随机函数产生一个临时随机数

rand_seed_temp = rand();  

//产生一个真随机数,用于当作种子

rand_seed_true = pmu_random_seed_fetch(rand_seed_temp);

srand(rand_seed_true); 

//通过rand函数产生随机数

for (i = 0; i < 10; i++)

{

   random_numbers[i] = rand();  

}

log_debug_array_ex("random_numbers data", random_numbers, sizeof(random_numbers));

}


备注:如果咱们想产生一个字节或半字的随机数,那么我们需要对获取的随机数,与上0xFF或者0xFFFF


测试结果如下:

image.png

从测试结果看,每次上电产生的随机数是不一样的。


被收藏 1  ∙  0 赞  
加入收藏
点赞
0 回复  
善言善语 (您需要 登录 后才能回复 没有账号 ?)

请先登录网站