UASRT(2)

news2024/9/21 18:52:41

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.coloradmin.cn/o/1229413.html

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

相关文章

2023年中国农业机器人行业市场规模及发展趋势分析[图]

农业机器人是一种机器,是机器人在农业生产中的运用,是一种可由不同程序软件控制,以适应各种作业,能感觉并适应作物种类或环境变化,有检测(如视觉等)和演算等人工智能的新一代无人自动操作机械。 农业机器人分类 资料来源&#xf…

基于单片机PM2.5监测系统仿真设计

**单片机设计介绍, 基于单片机PM2.5监测系统仿真设计 文章目录 一 概要简介设计目标系统组成工作流程仿真设计结论 二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 # 基于单片机PM2.5监测系统仿真设计介绍 简介 PM2.5(可吸…

3.8-镜像的发布

如果我们想将image push到docker hub里面,那么我们的image的名字一定要是这种格式:docker hub id/imageName,例如:lvdapiaoliang/hello-docker docker hub个人账户设置地址: 在push之前要先登录: docker l…

图神经网络:消息传递算法

一、说明 图网络-GNN(Graph Neural Networks)是近几年研究的主题之一,虽不及深度神经网络那么火爆,但在一些领域,如分子化学方面是不得不依赖的理论。本文就一些典型意义的图神经网络消息传递展开阐述。 二、图网络简述…

传输层协议 - UDP(User Datagrm Protocol)

文章目录: 传输层再谈端口号端口号划分知名端口号(Well-Know Port Number)netstat 命令iostat 命令pidof UDP 协议UDP 协议格式UDP 协议的特点面向数据报UDP 的缓冲区UDP 使用注意事项UDP 协议的应用基于 UDP 的应用层协议 在 DDoS 攻击中如何…

bhosts 显示节点 “unreach“ 状态

4.1、bhosts简单使用 查看各节点情况,包括状态和正在运行的 Job 情况等 STATUS列展示节点状态 OK:可用——可接受新的作业的正常状态 unavail:不可用 可能原因:主机关闭,LIM和sbatchd不可达 unreach:无法连…

关于LED显示屏的扫描方式知识

LED显示屏的扫描方式是指LED显示屏如何以一定的顺序控制LED点阵的亮度,从而形成图像或文字。主要有静态扫描和动态扫描两种方式。 静态扫描(Static Scan): 描述: 在静态扫描中,LED显示屏的每个LED点都有一个…

【Java SE】 详解java访问限定符

访问限定符 Java中主要通过类和访问权限来实现封装:类可以将数据以及封装数据的方法结合在一起,更符合人类对事物的认知,而访问权限用来控制方法或者字段能否直接在类外使用。Java中提供了四种访问限定符: 实际只有三种访问限定…

Find My蓝牙耳机|苹果Find My技术与耳机结合,智能防丢,全球定位

蓝牙耳机就是将蓝牙技术应用在免持耳机上,让使用者可以免除恼人电线的牵绊,自在地以各种方式轻松通话。自从蓝牙耳机问世以来,一直是行动商务族提升效率的好工具。正是应为蓝牙耳机小巧无线,人们越来越喜欢随身携带蓝牙耳机出门&a…

Iris for Mac:简单易用的录屏神器,让你的演示更出色

你是否曾需要在Mac上进行屏幕录制,但却苦于找不到一款简单易用的工具?那么,今天我们将为你介绍一款全新的屏幕录制软件——Iris for Mac。这款软件不仅功能强大,而且操作简单,可以轻松满足你的各种录屏需求。 一、简单…

系列五、线程间通信

一、synchronized实现 1.1、案例一(2个线程交替对变量执行1、-1操作,来10轮) 1.1.1、资源类ShareDataOne /*** Author : 一叶浮萍归大海* Date: 2023/11/20 10:44* Description: 资源类* 说明:2个线程使用if判断变量的值&#…

Python中用requests时遇到的错误警告解决方案

最近,我在Python 2.7.6(Ubuntu 14.04.2 LTS)环境中将requests库的版本从2.5.3升级到2.6.0,却遇到了’A true SSLContext object is not available’警告。每当我在Python 2.7.6环境中尝试使用requests库访问’github’时&#xff…

论文笔记:The Impact of AI on Developer Productivity:Evidence from GitHub Copilot

0 abstract 本文介绍了一项对GitHub Copilot(一种人工智能编程助手)的控制实验结果。研究人员招募了软件开发人员,要求他们尽可能快地用JavaScript实现一个HTTP服务器。实验组可以访问人工智能编程助手,比对照组完成任务的速度快…

Python 进程和线程详解(multiprocessing、threading)

文章目录 1 概述1.1 进程 VS 线程1.2 优缺点 2 进程2.1 三个步骤2.2 多进程2.3 带参数2.3.1 元组参数 args2.3.2 字典参数 kwargs 2.4 获取进程编号2.5 设置进程守护 3 线程3.1 三个步骤3.2 多线程3.3 带参数2.3.1 元组参数 args2.3.2 字典参数 kwargs 2.4 获取线程编号2.5 设置…

python爬取快手视频

原理 F12点击graphql能够看到里面有若干视频信息,一会儿要取其中的url地址 右键复制cURL 然后进入到这个转换器连接 https://curlconverter.com/python/ 点击这个连接复制上述信息,然后就能解析处下面的代码,拷贝到你的项目中替换cookies,headers,json_data 源代码 …

大模型重塑软件设计,南京真我加入飞桨技术伙伴,大模型生态圈成员又添一员!

为帮助伙伴更快、更好的应用大模型技术,飞桨技术伙伴体系及权益基于星河共创计划全面升级,通过丰富的场景、技术、算力、品牌等资源,为伙伴企业提供一站式的大模型资源对接,全面降低创建AI原生应用的门槛。 近日,南京…

QQ自动批量加好友(手机端)

1.需求 按照格式输入批量qq号,输入加好友间隔时间,脚本自动打开qq应用开始自动加好友,全程自动化操作。 输入qq号格式: 运行示意图: 2.代码 function carmiLogin () {var carmi = getCarMi()try {const data = {"key": carmi}http.__okhttp__.setTimeout(3000…

「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…

2023年中国负极材料分类、产量及市场规模分析[图]

锂离子电池主要由正极、负极、隔膜、电解液、电池外壳组成。负极材料是锂离子电池的重要原材料之一,对于锂离子电池起关键作用。在充电过程负极材料中不断地与锂离子发生反应,将锂离子“擒获并存储”起来,亦将外部的功以能量的形式存储在电池…