srand和rand()配合使用产生伪随机数序列。rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。 如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。

1、使用RTC时钟的时间作为随机数种子。

2、单片机内部运行一个循环软时钟,当随机事件(比如一些信号的输入、按键事件、上位机发来的信息等等)发生时,把此时的软时钟值作为随机数或种子。
如果要上电后马上产生的话,就必须借助硬件了,比如声音、光线、甚至一个悬空的ADC管脚等等方法。

3、STM32内置的硬件随机数发生器功能。

更多推荐