最近需要用到单片机随机数,但是用rand()产生的随机数,发现每次单片机上电时产生的随机数都是一样的,没有实现真正的随机数。查资料发现要用到srand(t)产生一个随机种子,同样获取随机种子的时候也需要一个随机信号,随机信号可以通过系统时间或者悬空的AD引脚产生。但是对于单片机来说每次上电后系统时间都是一样的,所以每次上电产生的随机数也是一样的。也可以读取悬空的AD引脚值,这样每次读取AD的值是随机的,用这个产生随机数是可行的。但是由于条件限制没有悬空的AD引脚可以用。难道就没有更简单的方式实现每次上电都产生不同的随机数吗?突然想到了每次上电时单片机内存中有些地址的值是随机的,那么能不能每次一上电就去读内存中的值,然后用这些值去产生随机种子。然后写了一段测试代码,测试发现这种方法果然可行。可以实现单片机上电产生随机数,每次上电产生的随机数都不同。

测试用的是STM8S003单片机。

测试代码如下:

#include "iostm8s103F3.h"#include "stdlib.h"void main(void){u8 tem = 0;//系统初始化srand(* ( u16 * ) ( 0x000008 ));   //直接读取内存地址的值,当做随机种子tem = rand() % 10;     //产生0--9随机数}

STM8单片机产生随机数相关推荐

  1. stm8单片机例程下载链接

    在这篇文章中将自己上传的资源做一个下载链接的目录方便查找下载 STM8单片机编码器使用示例 STM8单片机ADC连续扫描模式并开启模拟看门狗功能 STM8单片机ADC单次扫描模式并开启模拟看门狗功能 ...

  2. STM8单片机定时器驱动的深度解析

    上一节给大家介绍了基于标准库STM8单片机GPIO的驱动,本节课主要给大家介绍一下STM8定时器的驱动. 我们先打开STM8L10x单片机的规格书,简单的了解一下STM8L10X单片机的定时器功能. ...

  3. STM8单片机GPIO口的驱动深度解析

    上一节给大家介绍了STM8标准库的移植,本节课开始学习我们单片机的外设的驱动,单片机基本的外设资料包括GPIO.外部中断.定时器.串口等,本节先给大家介绍一下STM8单片机的GPIO口. 我们先不介绍 ...

  4. 手把手教你STM8单片机标准库移植

    本节主要内容:完成Lora模块单片机STM8L101F3标准库的移植 STM8l101F3单片机属于是8位单片机,但和传统的51有很大的区别: 1.STM8的内核不一样:  51单片机的内核是传统的8 ...

  5. 单片机生成随机数的方法总结

    去年冬天在帮学校附近一家密室逃脱店做一些电子机关,其中一个打地鼠项目需要用到单片机产生随机数,用于实现随机让几个地鼠"钻"出来.一开始想法很单纯,不就是随机函数么,之前C语言课上就 ...

  6. STM8单片机低功耗---活跃停机(Active Halt)模式实现-3

      在上一篇文章中使用活跃停机模式实现单片机的定时自动唤醒功能.STM8单片机低功耗-活跃停机(Active Halt)模式实现-2 通过这个实验可以看出,自动唤醒功能和定时器定时功能很类似,那么能不 ...

  7. STM8单片机低功耗---活跃停机(Active Halt)模式实现-1

      前两篇文章介绍了低功耗模式中的 等待(Wait)模式和停机(Halt)模式的实现.这篇文章开始介绍 活跃停机(Active Halt)模式. STM8单片机低功耗-等待(Wait)模式实现 STM ...

  8. STM8单片机低功耗---停机(Halt)模式实现

      在上一篇文章 STM8单片机低功耗-等待(Wait)模式实现 中介绍了低功耗模式中的等待(Wait)模式代码实现方法,这篇文章就来演示一下 停机(Halt)模式的代码实现.    停机(Halt) ...

  9. STM8单片机低功耗---等待(Wait)模式实现

      在平时使用单片机的时候,一般不太关心功耗的问题.但是当产品需要使用电池供电的话,那么功耗问题就要必须重视起来.那么如何降低单片机的功耗呢?STM8官方资料上给我们提供了以下几点建议:   如果项目 ...

最新文章

  1. 怎样用matlab打开mw文,C# matlab混合编程 MWArray使用笔记
  2. 使用KNN进行缺失值填补详解及实践
  3. vmware网络模式设置(说的最简单的一篇文章)
  4. 程序员怎么长久保持新鲜感?
  5. how to consume a webservice via ABAP proxy
  6. canvas 元素绑定事件_绘制SVG内容到Canvas的HTML5应用
  7. linux 使用命令直接查看带单位的文件大小
  8. 【报告分享】5G赋能中国智慧城市白皮书.pdf(附下载链接)
  9. 表单数据序列化,后台如何接收(java)
  10. Security+ 学习笔记20 身份证明
  11. 吊炸天!15岁成杀人犯,监狱里学编程,37岁获释后年薪70万
  12. 9 内存模型和名称空间
  13. 十年程序人生——转自黎活明
  14. IPv6与IPv4的区别 网信办等三部推进IPv6规模部署
  15. 字节跳动后端日常实习一二+hr面面经(已OC)
  16. 好软推荐之FeedDemon
  17. 计算机开机错误62,电脑开机出现Error 1962错误如何解决?
  18. 不是每个捕鱼都叫捕鱼达人:Cocos精品《捕鱼达人4》华丽升级
  19. 可以几分钟快速对接支付宝APP支付和手机网站支付?
  20. 标准C函数库头文件、POSIX标准库头文件和Windows API函数库头文件说明

热门文章

  1. 下了班----你干啥
  2. xp系统windows 组件向导无iis安装选项解决办法
  3. ubunto中常出现的问题
  4. [洛谷P2073] 送花
  5. Ext.grid.GridPanel数据转json
  6. 24种设计模式--命令模式【Command Pattern】
  7. docker提交容器成一个新的镜像commit和push,以及docker常用命令
  8. php 5.4.5,PHP 5.4.5 公布
  9. Reverse digits of an integer
  10. 云服务器ecs搭建环境,ECS云服务器linux下搭建开发环境