野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 21562|回复: 15

程序需要一个数组,里面存放5字节随机unsigned char

[复制链接]
发表于 2016-9-20 09:51:41 | 显示全部楼层 |阅读模式
3火花
程序需要一个数组,里面存放5字节随机unsigned char,有什么好的方法?网上说用srand()函数,但是效果不好?还有人推荐用ADC 会不会太麻烦?大家有什么简单实用的方法吗

最佳答案

查看完整内容

哈哈,客气了,那是不该把火花给我呢
回复

使用道具 举报

发表于 2016-9-20 09:51:42 | 显示全部楼层
Owenking 发表于 2016-9-21 16:17
谢谢你 我用了野火的ADC 采集的电压 ADC_ConvertedValue作为srand的种子 按复位也可以生成不同的随机数了 ...

哈哈,客气了,那是不该把火花给我呢
回复

使用道具 举报

发表于 2016-9-20 09:57:53 | 显示全部楼层
F4才有随机数发生器,F1没有,只能用srand了
回复

使用道具 举报

 楼主| 发表于 2016-9-20 10:23:18 | 显示全部楼层
随风 发表于 2016-9-20 09:57
F4才有随机数发生器,F1没有,只能用srand了

我用了rand();挺好用的 好像可以满足我的需求 ,你说的 srand是什么意思 我百度一下
回复

使用道具 举报

发表于 2016-9-20 10:27:11 | 显示全部楼层
Owenking 发表于 2016-9-20 10:23
我用了rand();挺好用的 好像可以满足我的需求 ,你说的 srand是什么意思 我百度一下

手误            ,多打了一个s
回复

使用道具 举报

 楼主| 发表于 2016-9-20 11:45:08 | 显示全部楼层
Owenking 发表于 2016-9-20 10:23
我用了rand();挺好用的 好像可以满足我的需求 ,你说的 srand是什么意思 我百度一下

这是我写的测试代码 和串口打印的随机数  我复位之后 5位随机数不变 放到while()循环里面才会变 这是为什么
QQ图片20160920114309.png
回复

使用道具 举报

发表于 2016-9-20 12:08:15 | 显示全部楼层
直接rand是伪随机,也就是每次你程序重新运行结果都一样,所以你可以用AD值也可以用RTC时钟作为种子,也可以用定时器计数作为种子。
回复

使用道具 举报

 楼主| 发表于 2016-9-20 14:04:06 | 显示全部楼层
本帖最后由 Owenking 于 2016-9-20 15:08 编辑
Yang_Guang 发表于 2016-9-20 12:08
直接rand是伪随机,也就是每次你程序重新运行结果都一样,所以你可以用AD值也可以用RTC时钟作为种子,也可 ...

为什么我加了#include “time.h” 还是报错?

我加了#include "time.h"为什么还是不行

我加了#include "time.h"为什么还是不行
回复

使用道具 举报

发表于 2016-9-20 22:02:37 | 显示全部楼层
Owenking 发表于 2016-9-20 14:04
为什么我加了#include “time.h” 还是报错?

stm32不能用系统时钟做种子。。。都给你说了三种方法了呀,要是可以用系统时钟还用那么麻烦呀?
回复

使用道具 举报

 楼主| 发表于 2016-9-21 16:17:27 | 显示全部楼层
Yang_Guang 发表于 2016-9-20 22:02
stm32不能用系统时钟做种子。。。都给你说了三种方法了呀,要是可以用系统时钟还用那么麻烦呀?

谢谢你 我用了野火的ADC 采集的电压 ADC_ConvertedValue作为srand的种子 按复位也可以生成不同的随机数了 你的方法完美地解决我的问题 !
@ZY4@2J52DW9U8FU3PW9U}P.png
回复

使用道具 举报

 楼主| 发表于 2016-9-22 09:07:01 | 显示全部楼层
Yang_Guang 发表于 2016-9-21 17:45
哈哈,客气了,那是不该把火花给我呢

我想给你 但是我不会操作 哈哈 你教我怎么悬赏给你
回复

使用道具 举报

 楼主| 发表于 2016-9-23 14:40:37 | 显示全部楼层
fire 发表于 2016-9-20 10:27
手误            ,多打了一个s

火哥,坛友Yang_Guang帮我解决了问题 想把火花给他 怎么操作  ?
回复

使用道具 举报

发表于 2016-9-23 17:39:35 | 显示全部楼层
帮顶!!!
回复

使用道具 举报

 楼主| 发表于 2016-9-24 10:50:29 | 显示全部楼层

问题已经解决啦 谢谢这位帮顶的朋友
回复

使用道具 举报

发表于 2016-9-24 18:03:29 | 显示全部楼层
Owenking 发表于 2016-9-24 10:50
问题已经解决啦 谢谢这位帮顶的朋友

在那个回复楼层的右下角,有一个框框可以选择最佳答案的,设置成最佳答案就会把悬赏给他了
回复

使用道具 举报

 楼主| 发表于 2016-9-26 11:48:04 | 显示全部楼层
flyleaf 发表于 2016-9-24 18:03
在那个回复楼层的右下角,有一个框框可以选择最佳答案的,设置成最佳答案就会把悬赏给他了

搜嘎~搞定!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-28 22:15 , Processed in 0.038030 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表