当前位置: 首页 > news >正文

网站建设音乐插件怎么弄wordpress添加数据库文件

网站建设音乐插件怎么弄,wordpress添加数据库文件,网络舆情监测员,线上商城推广STM32 硬件随机数发生器 文章目录 STM32 硬件随机数发生器前言第1章 随机数发生器简介1.1 RNG主要特性1.2.RNG应用 第2章 RNG原理框图第3章 RNG相关寄存器3.1 RNG 控制寄存器 (RNG_CR)3.2 RNG 状态寄存器 (RNG_SR)3.3 RNG 数据寄存器 (RNG_DR) 第3章 RNG代码部分第4章 STM32F1 …STM32 硬件随机数发生器 文章目录 STM32 硬件随机数发生器前言第1章 随机数发生器简介1.1 RNG主要特性1.2.RNG应用 第2章 RNG原理框图第3章 RNG相关寄存器3.1 RNG 控制寄存器 (RNG_CR)3.2 RNG 状态寄存器 (RNG_SR)3.3 RNG 数据寄存器 (RNG_DR) 第3章 RNG代码部分第4章 STM32F1 软件模拟RNG 前言 在日常生活中有很多情况都有用到随机数的应用比如手机验证码、快递取件码等。 第1章 随机数发生器简介 随机数发生器(Random Number GeneratorsRNG)用于生成随机数的程序或硬件。 STM32F4自带了硬件随机数发生器RNGRNG 处理器是一个以连续模拟噪声为基础的随机数发生器在主机读数时提供一个 32 位的(真)随机数。 RNG 已通过 FIPS PUB 140-2 2001 年 10 月 10 日测试成功率达 99%。 注意M3内核等低端些的的芯片不具有这个硬件随机数发生器具体需要参考“芯片选型手册”! 如果要产生随机数只能利用软件方式模拟生成伪随机数。 1.1 RNG主要特性 1、提供由模拟量发生器产生的 32 位随机数。 2、两个连续随机数的间隔为 40 个 PLL48CLK 时钟信号周期。 3、通过监视 RNG 熵来标识异常行为产生稳定值或产生稳定的值序列。 4、可被禁止以降低功耗。 5、真随机数完全随机毫无规律STM32的部分型号上具备真随机数发生器。 6、伪随机数伪随机数是用确定性的算法计算出的随机数序列并非真正的随机。 1.2.RNG应用 验证码、快递取件码、贪吃蛇游戏食物坐标等应用。 第2章 RNG原理框图 STM32F4 的随机数发生器框图如下图所示 随机数发生器采用模拟电路实现的。此电路产生馈入线性反馈移位寄存器 (RNG_LFSR) 的种子用于生成 32 位随机数。该模拟电路由几个环形振荡器组成振荡器的输出进行异或运算以产生种子。 RNG_LFSR 由专用时钟 (PLL48CLK) 按恒定频率提供时钟信息因此随机数质量与 HCLK 频率无关。当将大量种子引入 RNG_LFSR 后RNG_LFSR 的内容会传入数据寄存器 (RNG_DR)。同时系统会监视模拟种子和专用时钟 PLL48CLK。状态位 RNG_SR 寄存器中指示何时在种子上出现异常序列或指示何时PLL48CLK 时钟频率过低出现过低时可以由RNG_SR寄存器的对应位读取如果设置了中断则在检测到错误时生成中断。 第3章 RNG相关寄存器 3.1 RNG 控制寄存器 (RNG_CR) 该寄存器主要用RNGEN 位该位用于使能随机数发生器所以设置为 1。 3.2 RNG 状态寄存器 (RNG_SR) 该寄存器需要用到DRDY 位该位用于表示 RNG_DR 寄存器包含的随机数数据是否有效如果该位为 1则说明 RNG_DR 的数据是有效的可以读取出来了。读 RNG_DR后该位自动清零。 3.3 RNG 数据寄存器 (RNG_DR) RNG_DR 寄存器是只读寄存器可以读取该寄存器获得 32 位随机数值。此寄存器在最多 40 个 PLL48CLK 时钟周期后又可以提供新的随机数值。 第3章 RNG代码部分 由于这个RNG涉及的寄存器比较少可以直接用寄存器方式来操作即可就不用库函数方式了寄存器看上去就比较简洁。 示例代码如下 //初始化RNG //返回值:0,成功;1,失败 u8 RNG_Init(void) {u16 retry0; RCC-AHB2ENR16; //开启RNG时钟,来自PLL48CLKRNG-CR|12; //使能RNGwhile((RNG-SR0X01)0retry10000) //等待随机数就绪{retry;delay_us(100);}if(retry10000)return 1;//随机数产生器工作不正常return 0; }//得到随机数 //返回值:获取到的随机数 u32 RNG_Get_RandomNum(void) { while((RNG-SR0X01)0); //等待随机数就绪 return RNG-DR; }//得到某个范围内的随机数 //min,max,最小,最大值. //返回值:得到的随机数(rval),满足:minrvalmax int RNG_Get_RandomRange(int min,int max) { return RNG_Get_RandomNum()%(max-min1)min; }int main(void) {u32 random 0;delay_init(168); // 初始化 延时函数uart_init(115200); // 初始化串口波特率为115200RNG_Init(); // 初始化 RNG 硬件接口while(1){random RNG_Get_Random_Num(); // 获取一个32位的随机数 printf(random %d\r\n, random); // 显示32位随机数 random RNG_Get_Random_Range(10, 20);// 获取[10, 20]区间内的随机数 printf(random %d\r\n, random); // 显示区间随机数 delay_ms(500);} } 下载例程后可以在串口看到不断输出随机数了。 第4章 STM32F1 软件模拟RNG 单纯用软件方式模拟生成一个伪随机数。 #include delay.h #include usart.h #include stdlib.h //* 使用rand函数,库文件使用尖括号 *//* 设置随机数的取值区间范围 */ #define RANDOM_MIN 1000 // 随机数最小值 #define RANDOM_MAX 9999 // 随机数最大值int main(void) {u32 random_value 0; // 保存随机值delay_init(); // 初始化 延时函数uart_init(115200); // 初始化串口波特率为115200while(1){/* 随机数生成 */random_value rand(); //产生32位随机数 printf(当前随机数为%d\r\n, random_value);random_value rand() % (RANDOM_MAX 1 - RANDOM_MIN) RANDOM_MIN;// 产生区间随机数 printf(当前随机数为%d\r\n, random_value);delay_ms(500);} }这种用软件生成的伪随机数只能说是接近实验目的效果但是并不可取的方案。
http://www.w-s-a.com/news/798435/

相关文章:

  • 汽车行业做网站福建省第二电力建设公司网站
  • delphi做网站开发商城网站建设价位
  • 网站宣传片3 阐述网站建设的步骤过程 9分
  • 公司网站怎么做站外链接哪里有做胎儿dna亲子鉴定
  • 潍坊做电商的网站建设wordpress 特效主题
  • 做网站和app哪个难公司网上注册系统
  • 关于网站建设外文文献系部网站建设
  • 高端设计网站都有哪些月付网站空间提供商
  • 家政 东莞网站建设优化设计官方电子版
  • 做网站如何使用网页插件上海造价信息网
  • 承德网站制作加盟天津做优化的网站有多少家
  • 北京市保障性住建设投资中心网站首页专业做网站联系电话
  • 镇江网站建设方式优化单页面网站教程
  • 做手机网站公司北京网页设计公司兴田德润实惠
  • 域名申请好了 要怎么做网站百度推广开户渠道
  • 电商网站建设 数商云焦作黄河交通学院
  • 做一个网站成本多少太原网站维护
  • 网站建设制作设计优化怎么制作网页步骤
  • 花都区pc端网站建设画册设计多少钱一页
  • 国外买域名的网站廊坊网站制作网页
  • 抚顺市城市建设档案馆网站制作网页时经常用的一种动态位图格式是
  • 公司网站站群是什么运营网站
  • 昆明网站建设大全安徽教育机构网站建设
  • 广州网站排名怎么优化中华衣柜网
  • 怎样围绕网站专题发展来做ppt城乡住建局官网
  • 安卓手机app制作关键词优化公司
  • 江苏固茗建设有限公司网站深圳网站建设深圳网
  • 高性能网站建设指南北京城乡建设官方网站
  • 企业网站找谁做做淘宝相关网站
  • 商业网站网站建设wordpress关闭前端公共库