串口通信要点解析

目录

简介:

UART 协议解析:

串口协议工作过程:


简介:

串行通信协议包括:

UART通用异步收发传输器 (Universal Asynchronous ReceiverTransmitter) 是一种串行异步收发协议 (异步是指通信双方使用各自的时钟控制数据的发送和接收过程),目前在各种通信领域广泛应用。

UART通讯协议中指明在数据通信过程中,将数据一位一位(0'或1’) 进行传输,状态位高电平代表1低电平代表0。

当两个设备使用UART通讯时,双方要事先约定好波特率、数据位、奇偶校验位以及停止位后才能进行数据交互。


UART 协议解析:

奇偶校验位是一种用于串口通信中的错误检测机制。它通过在每个数据字节的最高位(奇校验)或最低位(偶校验)上添加一个校验位来检测数据传输过程中的错误。

在奇校验中,校验位被设置为使得数据字节中1的个数为奇数。例如,如果数据字节中有偶数个1,则校验位被设置为1,以使得总的1的个数为奇数。相反,在偶校验中,校验位被设置为使得数据字节中1的个数为偶数。

在发送端,发送方计算数据字节中1的个数,并根据奇偶校验位的设置将校验位添加到数据字节中。在接收端,接收方计算接收到的数据字节中1的个数,并与接收到的奇偶校验位进行比较。如果两者不匹配,表示数据传输过程中发生了错误。

奇偶校验位可以帮助检测一些单比特错误,例如位翻转或传输噪声引起的错误。然而,它并不能检测到所有类型的错误,因此在实际应用中,通常会结合其他错误检测和纠正机制来提高通信的可靠性。


串口协议工作过程:

首先两设备的硬件连接如下:

其次设置好所需要的波特率:

波特率: 表示数据每秒传输的位数,单位bps (bits per second) ,若串口波特率设置为4800bps,那么传输一个比特需要的时间是1/4800≥208.3us,在单片机程序设计中一般用定时器作为波特率发生器。

首先,如果没有数据发送,会一直保持高电平

如果有数据输入,则会在第一位收到一位低电平作为起始位

收到起始位后的第二位,会延后52us接收数据,确保数据的稳定可靠

起始位后的八位数据是所传输的一个二进制字符

最后一位是停止位置高电平

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

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

相关文章

fineBI web组件传参

1、fineBI web组件传参 1.1、 Web组件- FineBI帮助文档 FineBI帮助文档1. 概述1.1 版本FineBI 版本HTML5移动端展现功能变动6.0--V11.0.83web组件适配移动端效果优化6.0.13-web组件支持传递参数 ${过滤组件https://help.fanruan.com/finebi/doc-view-143.html 1.2、自己做的例…

分布式(6)

目录 26.雪花算法如何实现的? 27.雪花算法有什么问题?有哪些解决思路? 28.有哪些方案实现分布式锁? 29.基于数据库如何实现分布式锁?有什么缺陷? 30.基于Redis如何实现分布式锁?有什么缺陷&…

VS 2022 控制台程序运行时不显示控制台

Visual Studio 2022,C#控制台程序运行时不显示控制台。此外,C#程序修改运行时的程序名。 文章目录 不显示控制台修改运行时的程序名打包成.exe 文件 不显示控制台 1 选中需要项目,右击属性,选中常规。 2 将输出类型从控制台改为…

微服务-@FeignClient 与 Feign 隔离

FeignClient 扫描 FeignClientsRegistrar#registerBeanDefinitions public void registerBeanDefinitions(AnnotationMetadata metadata,BeanDefinitionRegistry registry) { // 注册默认配置 registerDefaultConfiguration(metadata, registry); registerFeignClients(metada…

服务异步通讯---RabbitMQ实用篇

目录 一、初识MQ 一、同步调用 1、同步通讯和异步通讯 2、同步调用的问题 3.同步调用总结 二、异步调用 1、优势: ​编辑 2、异步总结 二、什么是MQ 一、RabbitMQ快速入门 1、RabbitMQ的结构和概念 2、常见消息模型 2.1、基础消息队列模型 2.2、总结 二…

Sharding-JDBC快速使用【笔记】

1 引言 最近在使用Sharding-JDBC实现项目中数据分片、读写分离需求,参考官方文档(Sharding官方文档)感觉内容庞杂不够有条理,重复内容比较多;现结合项目应用整理笔记如下供大家参考和自己回忆使用; 在…

为什么要太空探索?未来万亿人口 人类移居太空是不可避免的。大语言模型是发现 贝索斯

管理的思考 「最以客户为中心」「果断」「如何决策」 贝索斯给亚马逊的使命是「世上最以客户为中心的公司」(以客户需求为起点,反向推动工作)。贝索斯给蓝色起源的使命是「世上最果断的公司」(我们将变得非常擅长在技术上恰当地冒险,并快速地作出那些决…

一篇了解springboot3请求参数种类及接口测试

SpringBoot3数据请求: 原始数据请求: //原始方式RequestMapping("/simpleParam")public String simpleParam(HttpServletRequest request){//获取请求参数String name request.getParameter("name");String age request.getParame…

钉钉-蓝牙打卡和平台打卡的区别

钉钉的群是部门概念。 你的账号归属到哪个群,就是哪个群的员工。 -------------------------------------------------------------------- 蓝牙打卡是对账号归属进行打卡的。 平台打卡是只对属于自己平台内的账号打卡的。 ----------------------------------…

【MATLAB】PSO粒子群优化BiLSTM(PSO_BiLSTM)的时间序列预测

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 基于PSO粒子群优化的BiLSTM的时间序列预测算法的基本原理如下: 「双向长短时记忆(BiLSTM)模型」:这是一种深度学习模型,特别适用…

感恩客户相伴23载,泛微2024持续向上!

2023年,国家大力推动数字经济发展,各行各业在加速数字化转型,在这一年,泛微保持持续增长,引领行业发展,为组织的数字化转型助力。感恩客户与伙伴朋友的支持与信任! 01.泛微中大客户总量突破8万余…

Unity中Shader的Reversed-Z(DirectX平台)

文章目录 前言一、在对裁剪坐标归一化设置NDC时,DirectX平台Z的特殊二、在图形计算器中,看一下Z值反转前后变化1、在图形计算器创建两个变量 n 和 f 分别 控制近裁剪面 和 远裁剪面2、带入公式得到齐次裁剪空间下Z值3、进行透视除法4、用 1 - Z 得出Z值反…

VS+QT五子棋游戏开发

1、首先安装好VS软件和QT库,将其配置好,具体不在此展开说明。 2、文件结构如下图: 3、绘制棋盘代码,如下: void Qwzq::paintEvent(QPaintEvent* event) {QPainter painter(this);painter.setRenderHint(QPainter::An…

【响应式编程-01】Lambda表达式初体验

一、简要描述 Lambda初体验Lambda表达式的语法格式Lambda表达式应用举例Lambda表达式底层实现 二、什么是Lambda表达式 Java8新特性,来源于数学中的λ[l:mdə]演算 是一套关于函数(f(x))定义、输入量、输出量的计算方案 Lambda表达式 -> 函数 使代码变得简洁…

维生素B5和琥珀酰辅酶A可以改善SF3B1基因突变引起无效造血过程

今天给同学们分享一篇实验文章“Vitamin B5 and succinyl-CoA improve ineffective erythropoiesis in SF3B1-mutated myelodysplasia”,这篇文章发表在Sci Transl Med期刊上,影响因子为17.1。 结果解读: SF3B1突变导致MDS-RS患者COASY异构体…

短视频账号矩阵系统源码/技术交付3年开发源头

账号矩阵3年技术独立开发打造是一个非常有挑战性和前景的项目。以下是一些建议,帮助你成功打造一个成功的短视频账号矩阵: 1. 确定目标受众:首先需要明确你的目标受众是谁,了解他们的兴趣爱好、年龄、性别等,以便为他们…

八大算法排序@选择排序(C语言版本)

目录 选择排序概念算法思想示例步骤1步骤2步骤...n最后一步 代码实现时间复杂度空间复杂度特性总结 选择排序 概念 选择排序(Selection Sort)是一种简单直观的排序算法。基本思想是在未排序的序列中找到最小(或最大)元素&#xf…

RS485数据采集模块,如何一次采集多个modbus设备数据?

在工业数据采集中,RS485是一种常见的数据通信协议,而Modbus则是其上的常用设备协议。那么,如何用一个模块高效采集多个Modbus设备的数据呢?这就是我们今天要探讨的话题! 什么是RS485数据采集模块? 首先&a…

ALSA学习(5)——设备中的alsa

参考博客: https://blog.csdn.net/DroidPhone/article/details/7165482 (一下内容基本是原博主的博客转载) 文章目录 一、ASOC的由来二、硬件架构三、软件架构四、数据结构五、内核对ASoC的改进 一、ASOC的由来 ASoC–ALSA System on Chip …

CMake入门教程【基础篇】在Windows、Linux上安装CMake

文章目录 1.windows平台第1步:下载CMake第2步:安装CMake第3步:验证安装第4步:初次使用第5步:构建和运行 2.Linux平台2.1 使用包管理器安装2.2 使用预编译的二进制文件2.3 从源代码编译2.4注意事项 1.windows平台 第1步…