一起学nRF51xx 10 -  rng

2023-11-13

前言

      随机数产生器(RNG)的结构:

      随机数发生器(RNG)根据内部热产生真实的非确定性随机数噪音。RNG通过触发START任务启动,并通过触发STOP任务停止。当随机数已经生成,它会产生一个VALRDY事件,同时把随机数存入VALUE寄存器。用户通过读取VALUE寄存器,获取这个随机数。有一点需要注意,随机数生成的时间不是固定不变的,时间有长有断,特别是使能了数字校验算法以后,时间更无法预测。不过有一点,当VALRDY事件产生的时候我们再去读取VALUE的值,这个是可靠的。RNG模块被触发START任务以后,会一直不断的产生随机数,每产生出一个随机数,会置位一次事件,只有触发STOP任务才能停止RNG模块。

      本教程实现把产生的随机数通过串口打印出来, 具体硬件连接请参考开发板电路图

 

示例详解

基于硬件平台:nrf51822ek_tm开发板。

 

本示例所用的最小系统板原理图:

 

    1. 工程创建:
      1. 打开KEIL,新建一个空工程:Project->NewuVisionProject

工程名为nrfxx-rng确认后按下图选择芯片为nrf51822_xxAA->ok

在弹出的对话框中勾选CMSIS中的CORE;Device中的Startup(后面有nrf51Series字样的);在nrf_device中勾选nrf_gpio, nrf_uart, nrf_delay,nrf_rng,nrf_err并在nrf_Libraries中勾选app_error,nrf_assert模块。

 

OK之后工程自动生成如下代码:

新建一个空白文档,保存为main.c,并加入工程中:

配置工程,选择使用MicroLIB库,可以减小程序体积:

加入NRF51定义,并选择化等级3,可以减小程序体积,但仿真运行时可能会出现与代码顺序不一致现象:

 

调试工具选择J-LINK,并将接口设置为SW口勾选下载程序后自动复位及运行:

 

 

    1. 工程代码
      1. OK之后在man.c中加入如下代码:

      本实验中大部分代码来自于《一起学nRF51xx 6 -  uart》章节内容,主函数依次执行gpio,uart初始化操作然后就是死循环,在死循环中实现对rng模块和led的操作,每操作一次等500ms把程序编译,下载到开发板上可以看到开发板上的蓝灯实现了呼吸灯效果。对应的PWM变化如下图所示:

关于nrf51xx及rng的更详细介绍可以参看《nRF51822_PS_v3.3.pdf》或https://infocenter.nordicsemi.com/index.jsp

 

OK,本期实验完成!下期见!同时如果大家有什么疑问或是有想了解的其它内容,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,会有不定期技术干货推出!!

文中源码资料下载,在公众号里给十三发消息:

下载|一起学nRF51xx 10

 

关注十三公众号

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一起学nRF51xx 10 -  rng 的相关文章

  • 手把手教你上手Apache DolphinScheduler机器学习工作流

    摘要 Apache DolphinScheduler 3 1 0发版后 添加了诸多AI组件 帮助用户在Apache DolphinScheduler上更方便地构建机器学习工作流 本文介绍如何建立DolphinScheduler与一些机器学习
  • Windows中如何查看日志(如查看远程登陆的IP地址)以及常用日志ID

    时间 2018 12 12 题目 Windows中如何查看日志 如查看远程登陆的IP地址 以及常用日志ID 概述 在Windows中可以使用 事件查看器 来查看相关日志 并结合日志ID进行日志筛选 常见的日志有 4634 帐户被注销 464
  • 将SSE指令转换为ARM NEON指令

    相关资料 sse指令集 sse指令解释 sse2neon仓库 可以在sse2neon h中寻找对应的neon指令转换方法 注意事项 将sse指令转换为arm neon指令往往很难起到优化作用 甚至可能产生负优化 因此该部分优化仅供参考 mm
  • 12.计算机网络---iptables防火墙管理工具

    文章目录 一 防火墙基础知识 1 1 防火墙是什么 1 2 iptables基础知识 1 3 netfilter和iptables的关系 1 4 新型防火墙工具 firewalld 二 iptables的四表五链 2 1 规则表 2 2 规
  • Python爬虫之使用MongoDB存储数据

    1 MongoDB的安装 MongoDB是一种非关系型数据库 MongoDB官网 选择你的系统对应的版本下载安装即可 2 MongoDB配置 a 在C盘或者D盘建一个文件夹如图mongodb b 安装成功后里面会有bin文件然后再文件夹里面
  • sudo配置文件/etc/sudoers深入介绍

    简介 sudo命令对应的用户权限授权配置文件为 etc sudoers 我们可以使用专用工具visudo来完成有关sudo的授权管理配置 使用visudo工具的好处是在添加规则之后 保存退出时会检查授权配置的语法 这一点很重要 曾经有人直接
  • 理解矩阵 from孟岩--流星小屋

    理解矩阵 from孟岩 前不久chensh出于不可告人的目的 要充当老师 教别人线性代数 于是我被揪住就线性代数中一些务虚性的问题与他讨论了几次 很明显 chensh觉得 要让自己在讲线性代数的时候不被那位强势的学生认为是神经病 还是比较难
  • vscode 用git 拉取代码,提示:在签出前,请清理存储库工作树。请问是什么问题,如何解决

    问题主要是git仓库上的代码和本地代码存在冲突 解决办法 1 新建一个文件夹重新从git拉取最新的代码 使用beyond compare对比合并自己修改的代码到新拉的代码里 提交 2 放弃本地修改 直接覆盖 git reset hard g
  • Hadoop分布式文件系统(HDFS)Java接口(HDFS Java API)详细版

    误用聪明 何若一生守拙 滥交朋友 不如终日读书 相关连接 HDFS相关知识 Hadoop分布式文件系统 HDFS 快速入门 Hadoop分布式文件系统 HDFS 知识梳理 超详细 Hadoop集群连接 Eclipse连接Hadoop集群 I
  • Vant UI使用iconfont自定义图标

    在使用Vant UI做h5页面时 不可避免的会使用到各种小图标 但是Vant 官方提供的图标是有限的 考虑到这种情况 vant也提供了一种方法去自定义图标 自定义图标 可能有些同学看到这里也是一头雾水 下面有详细的教程 iconfont 让
  • 栈的逆序

    题目描述 实现一个栈的逆序 但是只能用递归函数和这个栈本身的pop操作来实现 而不能自己申请另外的数据结构 给定一个整数数组A即为给定的栈 同时给定它的大小n 请返回逆序后的栈 测试用例 输入 4 3 2 1 4 输出 1 2 3 4 解题
  • 伯德图 matlab,Matlab/Simulink中bode图的画法

    在Matlab中 大多时候 我们都是用M语言 输入系统的传递函数后 用bode函数绘制bode图对系统进行频率分析 这样做 本人觉得效率远不如Simulink建模高 如何在Matlab Simulink中画bode图 以前也在网上查过些资料
  • 《数据库系统概论(第5版)》课后习题答案 王珊、萨师煊编著版 课后题解析 高等教育出版社出版 答案与解析第二篇 第1章 课后答案与解析

    数据库系统概论 第5版 课后答案 数据库系统概论 第5版 课后习答案 王珊 萨师煊编著版 课后题解析 高等教育出版社出版 答案与解析 数据库系统概论 第5版 王珊 萨师煊编著版 第二篇 第1章 课后答案与解析 完整答案在页面最下方 前言 第
  • unity3D期末作业 开车游戏

    unity3D期末作业 开车游戏 文末附下载链接 游戏如下动态图 点我下载 https download csdn net download weixin 43474701 75857348

随机推荐