可以用srand函数,比如生成0到100随机数,
srand(gSystickMsecCount); //gSystickMsecCount这个值是在Systick中断中计数的变量
srand这两个函数就可以了。
rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列。
有的STM32带产生随机数的硬件,通过读取寄存器获得随机数
一般都是软件上产生,使用rand函数,要包含stdlib.h头文件。
添加stdlib.h头文件
#include <stdlib.h>
调用rand函数。但这个不是真正的随机数生成器,而是通过算法计算出来的
STM32上面如果要硬件随机数,一般的方法就是利用ADC的白噪声,因为多数STM32都会带有ADC外设,然后有其中一路ADC是测它的电源电压的
对于少数带了硬件随机数发生器的,也可以用这个
如果用软件随机数,那可以用个rand函数