• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32 如何获取一个随机数

liangeeg 2019-02-19 浏览量:5869
STM32   如何获取一个随机数​ ,keil开发环境
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 添加头文件: #include<stdlib.h>

    rand()函数会返回一个随机数,这是一个伪随机数。

    如果想要真正的随机数,需要用cortex-m4以上的内核,比如F4、F7系列的stm32,使用随机数生成的外设生成

    • 发布于 2019-02-19
    • 举报
    • 评论 0
    • 3
    • 0

其他答案 数量:26
  • 先使用一个srand()函数,设定一个种子

    然后使用函数rand()获取随机数就可以了。


    rand()函数产生的随机数的顺序是固定的,需要一个变量去设置随机数种子。

    通常的做法是:
    srand(time(NULL));                    //将时间的秒数作为种子

    printf("%d " rand()%100);​​​        //打印出0-100的随机数



    • 发布于2019-02-19
    • 举报
    • 评论 0
    • 3
    • 0

  • 如果你对随机数没有太多要求的话,可以用rand生成伪随机数,如果需要真正的随机数,可以加上seed,至于seed可以是外部触发条件,比如你按键的频率、某个传感器读出的数据,也可以是时钟(如果stm32有的话)
    • 发布于2019-02-19
    • 举报
    • 评论 0
    • 2
    • 0

  • 使用rand()函数产生随机数。
    • 发布于2019-02-19
    • 举报
    • 评论 0
    • 2
    • 0

  • 可以参考下这个例程https://blog.csdn.net/anbaixiu/article/details/76223977
    • 发布于2019-02-19
    • 举报
    • 评论 0
    • 1
    • 0

  • 库中有一个函数是可以使用的rand,但是并不是真随机数
    • 发布于2019-02-20
    • 举报
    • 评论 0
    • 1
    • 0

  • 标准库stdlib中有随机函数(伪随机数),一般的随机数获取,只需要引入随机种子即可,比如可以以临时当前时间值为种子,或者某个模拟ADC随机状态

    更随机的数可以利用专业的随机数发生器(随机状态产生器)

    • 发布于2019-02-20
    • 举报
    • 评论 0
    • 1
    • 0

  • 函数srand和rand()配合使用产生伪随机数序列
    • 发布于2019-02-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以借助C语言中的rand()和srand()函数

    先使用一个srand()函数,设定一个种子

    然后使用函数rand()获取随机数就可以了。


    rand()函数产生的随机数的顺序是固定的,需要一个变量去设置随机数种子。

    通常的做法是:
    srand(time(NULL));                    //将时间的秒数作为种子

    printf("%d " rand()); 

    • 发布于2019-02-20
    • 举报
    • 评论 0
    • 0
    • 0

  • rand就行了呀,复杂一点的就srand和rand一起用。
    • 发布于2019-02-20
    • 举报
    • 评论 0
    • 0
    • 0

  • C库有随机数函数,但是是一个伪随机数,没有规律,但是其实每次的顺序是固定的,可以每次读一个未知地址的非零数相乘,降低重复率
    • 发布于2019-02-20
    • 举报
    • 评论 0
    • 0
    • 0

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

    • 发布于2019-02-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 随机数的获取,在单片机上不同于电脑,单片机上没有时间作为种子,直接使用随机数函数函数的话每一次生成的随机数都是一样的。但是可以使用ad口来做为一个随机数的种子,这样可以得到变化的随机数。模拟真实的随机数,配置一个输入ADC引脚,悬空,采集改口的ADC数字,一般都是随机的,会变化,去变化比较大的后几位欧威随机数生成的种子
    • 发布于2019-02-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 先设置一个时间种子一般用时间做种子然后rank取随机数
    • 发布于2019-02-21
    • 举报
    • 评论 0
    • 0
    • 0

  • rand和种子一起用,种子可以来源为时间、各种外部变量
    • 发布于2019-02-21
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32F4自带了硬件随机数发生器(RNG),RNG处理器是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个32位的随机数。

    具体可以参考http://bbs.icxbk.com/thread-98482-1-1.html

    • 发布于2019-02-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个可以用F4系列的TRNG外设或者直接用ADC的尾噪都可以。
    • 发布于2019-02-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以用C库里面的rand()函数,也可以用ADC上面的随机噪声
    • 发布于2019-02-24
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32 如何获取一个随机数