UASRT(2)

UASRT参数配置

数据发送过程
1.双缓冲
在这里插入图片描述
当要发送三个数据 且是连续发送 第一个数据写入TDR寄存器 然后到移位寄存器发送(一个一个bit的发送)在第一个数据在移位寄存器发送的时候第二个数据就已经被写入TDR寄存器了等到第一个数据发送完第二个数据就进入移位寄存器中发送 依次类推第三个数据也是同第二个数据如此
这样通过双缓冲就可以完成多个数据的连续发送
在数据的发送中会存在两个问题
在这里插入图片描述
1 就是数据发送过快 在写入寄存器中数据覆盖了(如第二个数据被第三个数据覆盖了)
2 还有就是不知道数据发送完到底是什么时候
那么就涉及到了SR状态寄存器 通过读取状态寄存器的一些比特位可以解决相关的问题

TXE标志位
TXE是SR状态寄存器的最左边 在这里插入图片描述
当IDR寄存器中还有数据时(数据正在等待被传输到移位寄存器中被发送)TXE位就为0 当IDR寄存器没有数据时(表示可写入数据)TXE位就为1 这样写一个while循环当TXE为0时就不写入数据 当TXE为1时就可以写入数据

TC标志位
在这里插入图片描述
TC标志位为1时需要TDR寄存器为空 并且移位寄存器也为空 才使得TC标志位为1 当数据进入TDR 然后进入移位寄存器中处理一段时间才能全部把一个字节的数据发送完成 当数据还在移位寄存器发送的时候 TXE为1 (IDR寄存器为空) 当移位寄存器传输完数据后 移位寄存器也为空位状态 然后TC也为1 当标志位TXE和TC都为1就表示一个数据的传输完成

单个数据的发送
在这里插入图片描述
当TDR = 0后就写入要发送的数据到移位寄存器中 然后等待数据发送完成后 标志位TC=0标志着可以写入下一个数据到TDR寄存器中
数据的连续发送
在这里插入图片描述
第二种循环才是对的 第二种方式运用到了两个缓冲 但是第一个方式一直是一个数据再发送 就是第一个数据发送完才能发送第二个数据 而第二种方式是在第一个数据发送时第二个数据也被写入TDR寄存器 更加高效快捷
数据接收时候的问题
我们不知道什么时候读取数据的 就是不知道什么时候发送方发送数据会造成读取数据过快和过慢造成数据的丢失
在这里插入图片描述
图中的寄存器应为RDR
当数据到移位寄存器中 RDR寄存器读取数据过早时就会乱码
在这里插入图片描述
一个字节的数据读取 就是接收单个数据的代码
在这里插入图片描述
接收多个数据的代码

错误标志位

在这里插入图片描述
在串口传输数据的过程中可能会发生数据错误的情况 但是如何来判断数据是否错误呢? 就是通过错误标志位 错误标志位实在SR状态寄存器中的
PE奇偶校验错
在这里插入图片描述
当数据在传输的过程中以数据帧的形式传输 通常会拿最后一个位MSB作为校验位 如这里设置为奇校验 数据中只有4个1就在MSB校验位中自动补上一个1
一共就有5个1 在数据的传输中有错 数据出错 接收方的SR状态寄存器中的RXNE位由0变为1表示接收到了数据 PE位为1表示接收到的数据错误
FE帧格式错
在这里插入图片描述
就是在该收到停止位的地方没有收到停止位的高电平 表示接收到的数据不完整FE标志位置1
NE噪声错
在这里插入图片描述
在数据的传输中数据是以数据帧的形式传输的 通常接收方会以一定的频率读取 如果三次读取到的都是高电平 那么就认定为高电平 但是由于噪声的影响会造成数据的读取失误就是不知道读取到的是什么电平
ORE过载错
在这里插入图片描述
由于读取数据过慢造成第二个数据被第三个数据覆盖 造成数据丢失 SR寄存器的ORE位就为1
错误标志位的使用方法
在这里插入图片描述
接收到数据后 srcpy就为SR寄存器 检查是否错误校验位有错

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/149140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jetbrains ai 提示该地区不可用的百分百解决方案,亲测有效

问题 申请 jetbrains 的 ai assistant 白名单已经通过,但是在使用 ai assistant 的过程中提示 The usage of the service is not permitted in your location ,我所在的地区是中国,目前该插件是对中国大陆关闭的。 刚开始我怀疑是代理的问题&#xff…

【STL】string类 (上) <vector>和<list>的简单使用

目录 一,什么是 STL 二,STL 的六大组件 三,标准库中的 string 类 1,string 类 2,string 类的常用接口 1,string类对象的常见构造 2,string(const string& str&#xff…

OTP语音芯片 NV080D在智能空气检测仪的应用

随着人们对健康和环保的关注度不断提高,人们对看不见的家居环境也越来越重视。智能空气检测仪的市场需求也在不断增长中,呈现稳中向好的趋势。智能空气检测仪能够检测室内空气中的PM2.5、甲醛、TVOC等有害物质,同时还可以检测温湿度、空气质量…

5g路由器赋能园区无人配送车联网应用方案

随着人工智能、无人驾驶技术和自动化技术的不断进步,无人配送技术得到了极大的发展。园区内的物流配送任务通常是繁琐的,需要大量的人力资源和时间。无人配送技术能够提高配送效率并减少人力成本。无人配送车辆和机器人能够根据预定的路线和计划自动完成…

Rapid chain

这篇文章中提到 Elastico 运行6个epoch就会退化到公式失败率高达 0.97 omnileger 在第一个epoch需要一个初始化的随机种子,来初始化 VRF。这需要 O ( n 2 ) O(n^2) O(n2) 的复杂度,并且OminLedger 需要通过轻节点驱动枷锁和解锁的过程,这户家…

主键问题以及分布式 id

分布式 id 需要处理的问题主要是同一时间在多台机器中保证生成的 id 唯一,为了这么做我们可以这么做: 分布式 id 生成策略 先说几个已经被淘汰的策略引出分布式 id 的问题 1,UUID:UUID 随机并且唯一,在单一的数据库…

Android问题笔记四十六:解决open failed: EACCES (Permission denied) 问题

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列点击跳转>ChatGPT和AIGC 👉关于作者 专…

[算法学习笔记](超全)概率与期望

引子 先来讲个故事 话说在神奇的OI大陆上,有一只paper mouse 有一天,它去商场购物,正好是11.11,商店有活动 它很荣幸被选上给1832抽奖 在抽奖箱里,有3个篮蓝球,12个红球 paper mouse能抽3次 蒟蒻的p…

Cascade-MVSNet论文笔记

Cascade-MVSNet论文笔记 摘要1 立体匹配(Stereo Matching)2 多视图立体视觉(Multi-View Stereo)3 立体视觉和立体视觉的高分辨率输出4 代价体表达方式(Cost volume Formulation)4.1 多视图立体视觉的3D代价…

RT-DETR优化改进:SEAM、MultiSEAM分割物与物相互遮挡、分割小目标性能

🚀🚀🚀本文改进:SEAM、MultiSEAM分割物体与物体相互遮挡性能 🚀🚀🚀SEAM、MultiSEAM分割物与物相互遮挡、分割小目标性能 🚀🚀🚀RT-DETR改进创新专栏:http://t.csdnimg.cn/vuQTz 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; RT-DETR模型创新…

数字化时代,VR全景如何助力商企抢占市场份额?

随着5G技术的逐步落地,VR全景已经开始逐渐被应用到各行各业中了,VR餐饮、VR房产、VR景区、VR工厂、VR学校、VR博物馆等等,甚至大家所熟悉的汽车之家中的全景看车、贝壳和链接的全景看房等,所应用的都是VR全景的形式。 前几年电商对…

设计模式(二)-创建者模式(2)-工厂模式

一、为何需要工厂模式(Factory Pattern)? 由于简单工厂模式存在一个缺点,如果工厂类创建的对象过多,使得代码变得越来越臃肿。这样导致工厂类难以扩展新实例,以及难以维护代码逻辑。于是在简单工厂模式的基础上&…

HTML易忽略的角落【目录】

目前已有文章 **** 篇 本专栏是汇集了一些HTML常常被遗忘的知识,这里算是温故而知新,往往这些零碎的知识点,在你开发中能起到炸惊效果。我们每个人都没有过目不忘,过久不忘的本事,就让这一点点知识慢慢渗透你的脑海。 …

用js切割文字,超出省略

因为项目需要,当人员超过两个事则进行超出省略,如将一个 “张三,李四,王五”,这样的字串切割成"张三,李四…" 效果: 主要用的是基础的切割法 isOutlier(text) {if (!text || text "") return;const parts text.split(","); // 使用逗号将字…

【canvas】了解canvas,并实现会议预定记录钟表盘、页面水印

初识canvas Canvas 有什么用 Canvas 允许使用直线、曲线、矩形、圆形等基本图形绘制出复杂的图形 Canvas 可以加载图像,并进行各种处理,如裁剪、缩放、旋转等操作 Canvas 可以通过 JavaScript 控制,所以你可以利用帧动画原理,…

Leetcode2937. 使三个字符串相等

Every day a Leetcode 题目来源:2937. 使三个字符串相等 解法1:枚举 设 len1、len2、len3 分别为字符串 s1、s2、s3 的长度。 min_len 是 3 个字符串长度的最小值。 枚举 len min_len 到 len 1,设 t1、t2、t3 分别是字符串 s1、s2、s…

全链路监控--pinpoint

一、pinpoint架构原理 架构组成 Pinpoint Agent:和自己运行的应用关联起来的探针 Pinpoint Collector:收集各种性能数据 Pinpoint-Web: 将收集到的数据显成为 WEB网页显示 HBase Storage: 存储收集到的数据 工作原理 pinpoint的核心思想是在各个服务节点之间彼此调用时&a…

Unity 6 是下一个 LTS 版本即将发布

Unity 公司宣布,即将发布 Unity 6,并表示其为下一个长期支持版本 (LTS)。 Unity 在大会上演示了全新的 Unity 6引擎,并通过 Syncy Studios 采用 Unity 6 制作的《幻想王国(Fantasy Kingdom)》Demo 进行了演示&#xff…

面试题 三

一、this 手写call //1、定义myCall方法 //3、接收剩余参数并返回结果 Function.prototype.myCall function (thisArg, ...arg) {// console.log(thisArg); //person对象// console.log(this); //func方法//2、设置this并调用原函数//下面三行代码有个缺陷就是如果pers…

「Verilog学习笔记」边沿检测

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 timescale 1ns/1ns module edge_detect(input clk,input rst_n,input a,output reg rise,output reg down );reg a_tem ; always (posedge clk or negedge rst_n) beginif…