打印
[STM32F1]

请教一下STM32真随机数算法的问题

[复制链接]
3788|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
rand是伪随机数,真随机数配合定时器time()计算产生随机数,但是如果我想上电初始化的时候要产生一个随机数怎么做,单片机每次上电时间都是一样的,怎么产生这个真随机数
沙发
airwill| | 2018-11-12 19:49 | 只看该作者
是不是可以考虑设计个白噪声源, 放大后交给 ADC 去转换

使用特权

评论回复
板凳
chongdongchen| | 2018-11-12 22:00 | 只看该作者
单片机内部运行一个循环软时钟,当随机事件(比如一些信号的输入、按键事件、上位机发来的信息等等)发生时,把此时的软时钟值作为随机数或种子。
如果要上电后马上产生的话,就必须借助硬件了,比如声音、光线、甚至一个悬空的ADC管脚等等方法。

使用特权

评论回复
地板
yiyigirl2014| | 2018-11-12 22:24 | 只看该作者
没有外设模块的抽取随机数都是假随机。

使用特权

评论回复
5
yiyigirl2014| | 2018-11-12 22:25 | 只看该作者
沙发的大神说的好像方法很科学。

使用特权

评论回复
6
lyfly_away| | 2018-11-12 23:16 | 只看该作者
yiyigirl2014 发表于 2018-11-12 22:24
没有外设模块的抽取随机数都是假随机。

浮空ADC噪声呢?

使用特权

评论回复
7
yiyigirl2014| | 2018-11-13 09:01 | 只看该作者

你可以先检测1000个或者10000个数据,然后取后面的某一位,然后统计,看看是否符合随机分布

使用特权

评论回复
8
dirtwillfly| | 2018-11-13 20:16 | 只看该作者

会受外界电磁环境干扰的。浮空容易受干扰,不是真随机数

使用特权

评论回复
9
QuakeGod| | 2018-11-13 21:23 | 只看该作者
STM32内有真随机数发生器,用的是热噪声。

使用特权

评论回复
10
6688hyc| | 2018-11-14 09:29 | 只看该作者
这个比较难搞吧?一般都是用浮空ADC的噪声。这个噪声按说也算不上完全随机。

使用特权

评论回复
11
東南博士| | 2018-11-14 14:06 | 只看该作者
随机数对于人机交互,按键操作登陆,输入密码方面,。有很大的用途……

如果能够**了 随机数,是不是玩儿一些游乐机,会有很大的帮助啊?

使用特权

评论回复
12
huzi2099| | 2018-11-14 14:09 | 只看该作者
完全随机是个理想化的东西,要求不高能凑合用得了。

使用特权

评论回复
13
xmar| | 2018-11-14 15:15 | 只看该作者


这个可以。真正的白噪声发生器。

使用特权

评论回复
14
xcvista| | 2018-11-14 15:18 | 只看该作者
真随机数是不可能靠算法得到的。可以考虑利用片上 ADC 接一个硬件噪声源:热噪声比较简单,但不会比肖特基噪声简单到哪里去。热噪声是混沌原理噪声,是否本质随机尚不清楚;肖特基噪声是间接测量量子力学噪声,本质随机由海森堡测不准原理保证。如果说随机数有特殊要求,譬如需要用于重要加密场合,建议用低活度放射源盖革计数器噪声源,这是直接测量的量子力学噪声。

使用特权

评论回复
15
QuakeGod| | 2018-11-14 19:15 | 只看该作者
还要再说一次吗?


STM32内有真随机数发生器。

STM32内有真随机数发生器。

STM32内有真随机数发生器。

使用特权

评论回复
16
小叶三千|  楼主 | 2019-12-18 13:17 | 只看该作者
QuakeGod 发表于 2018-11-14 19:15
还要再说一次吗?

没有的,至少我用到的F030和F103的没有

使用特权

评论回复
17
kageyang| | 2020-3-4 23:45 | 只看该作者
小叶三千 发表于 2019-12-18 13:17
没有的,至少我用到的F030和F103的没有

STM32F407系列内部有32位真随机数发生器,刚做了一个相关的项目:
while (RNG_GetFlagStatus(RNG_FLAG_DRDY)== RESET);
    RNG_GetRandomNumber();
          GPIO_Write(GPIOE,RNG_GetRandomNumber());

使用特权

评论回复
18
小叶三千|  楼主 | 2020-3-5 10:26 | 只看该作者
xcvista 发表于 2018-11-14 15:18
真随机数是不可能靠算法得到的。可以考虑利用片上 ADC 接一个硬件噪声源:热噪声比较简单,但不会比肖特基 ...

专业,有道理啊

使用特权

评论回复
19
小叶三千|  楼主 | 2020-3-5 10:26 | 只看该作者
kageyang 发表于 2020-3-4 23:45
STM32F407系列内部有32位真随机数发生器,刚做了一个相关的项目:
while (RNG_GetFlagStatus(RNG_FLAG_DR ...

F4的有吧,没用过F4的我用的是F103的好像没有

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:清智科技嵌入式工程师
简介:单片机嵌入式底层开发,汽车电子

43

主题

497

帖子

16

粉丝