[应用相关] stm32生成随机数

[复制链接]
3020|9
 楼主| zljiu 发表于 2024-2-4 16:18 | 显示全部楼层 |阅读模式
1、srand( )函数
srand()的头文件stdlib.h中的一个随机数发生函数,该函数需要向其提供一个起始点,以便它能够生成一系列不同的随机数。srand()函数会在生成随机数之前调整生成随机数所用的种子。这个种子可以通过调用srand()函数明确地提供,如果不明确地提供,srand()函数则使用当前时间作为种子。
srand()函数的用法比较简单,只需要提供一个种子即可。一般情况下,我们使用当前时间作为种子,以获得较随机的数字序列。
srand(100);
2、srand( )函数和rand()
这两个函数需要配合使用,单独使用rand()会出现0或是一直不变化的现场
3、具体应用
int number = rand() % 10 + 1; //产生1-10的随机数
printf(“%d \n\r”,number);

int number1 = rand() % 20 + 10; //产生1-20的随机数
printf(“%d \n\r”,number1);
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/taoye_11/article/details/134528211

tpgf 发表于 2024-4-7 14:52 | 显示全部楼层
一般 随机数的体量和位数是成一定关系的吧
wakayi 发表于 2024-4-7 15:36 | 显示全部楼层
生成随机数的函数 单片机需要多少个指令周期才能完成啊
LEDyyds 发表于 2024-4-7 16:57 | 显示全部楼层
我一般用内部3温度值来作为种子
wowu 发表于 2024-4-7 20:38 | 显示全部楼层
生成随机数的目的是什么呢
renzheshengui 发表于 2024-4-7 21:12 | 显示全部楼层
如果需要生成很大的随机数 是不是对单片机的数据处理能力就比较高了啊
paotangsan 发表于 2024-4-7 21:46 | 显示全部楼层
两个一样的随机数碰上的概率真的很低
keaibukelian 发表于 2024-4-7 22:20 | 显示全部楼层
这个随机数函数生成的是伪几随机数吧
公羊子丹 发表于 2025-3-11 08:08 | 显示全部楼层
STM32本身有硬件随机数发生器(RNG),比srand() + rand()更可靠,安全性也更高,建议试试看。
周半梅 发表于 2025-3-11 08:10 | 显示全部楼层
srand()用当前时间作种子是个常规做法,但STM32的RTC时钟启动时间可能有延迟,种子值可能不太理想。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

3327

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部