标题:
有关STM32单片机随机数的问题想请教一下
[打印本页]
作者:
茉莉星瞳
时间:
2021-7-25 22:18
标题:
有关STM32单片机随机数的问题想请教一下
在stm32中产生一个随机数就是一句话的事,利用中断按键程序可以让它变化得产生随机数,那么如何让它可以隔一段时间自动产生不同的随机数自动变化得去显示呢
KTK@SCR{8B5BG]EBLK.png
(45.07 KB, 下载次数: 42)
下载附件
2021-7-25 22:16 上传
作者:
Hephaestus
时间:
2021-7-26 00:04
没什么好办法,C51里面随机函数是伪随机数,但是人类按键动作跟定时器运行是完全不相关的,所以以按键时定时器的值来做随机种子,伪随机算法一样可以获得真随机数。
但是你要定时自动生成,我就想不出能弄出真随机数的办法了。
作者:
npn
时间:
2021-7-26 00:11
随机数可以用哈希算法产生,比如md5、sha256,计算需要一定时间。
作者:
yzwzfyz
时间:
2021-7-26 08:59
告诉你,我在工作中采用的方法:
1、一定要基于一个随机的输入事件。只要是与IO口相连接的,输入无规律的都可以拿来作为随机事件。
2、建立一个高速循环计数器N。
3、建立一组随机数存储单元R[]用于储存随机数,数组数量由你根据需要而定。
4、每当IO发生输入事件时(输入是随机的),就将N存入R[]中,也是轮流循环复盖存储。
如此:R[]中的数字(或其中的几位,例如N是16位的,而你只要取0-127,则取其中的任意7位即可)就作为随机数,供你使用。
本方式的使用条件是:取随机数速率,小于IO随机事件发生的速率。
为何要用数组储存呢?偶尔两次取随机数间隔时间,会小于IO口输入事件的间隔时间。用数组可以先储存一些随机数(事件前产生的)。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1