以前一直以为单片机中无法使用随机数,我也不知道自己哪里来的这种错觉。直到昨天项目上需要用到随机数,才去查了一下,竟然真可以在单片机中生成随机数,以下为一个生成随机数简单的测试demo:
#include “stdio.h”
#include "stdlib.h" //rand()函数和srand()函数的头文件。
#define MAX_RANDOM 80 //随机数最大值
#define MIN_RANDOM 1 //随机数最小值
/*
@function:for genergate a random num .
@param: the @seed is a num for generate random num.
*/
unsigned int random(unsigned int seed)
{
unsigned int value;
srand(seed);
value = rand() % (MAX_RANDOM + 1- MIN_RANDOM) + MIN_RANDOM; //获取一个随机数(1-80)
return value;
}
void main()
{
while(1)
{
static unsigned int num;
printf("generate random num:%d\r\n",random(num));
delay_ms(1000);
num++; //根据累加的num值生成多个随机数
}
}