【超简单的串口通信的工作原理】

article/2025/10/6 21:22:04

下图是电脑收到单片机经过串口发送的信息, 那么电脑是如何与单片机进行串口通信的呢?
在这里插入图片描述
首先,任何一种通信都要包括硬件物理接口和软件通信协议。
串口通信物理接口如下图。单片机通过发送端将数据从左往右一位一位按顺序发送;且在发送前,我们需要事先约定好帧格式,和波特率,这种规则被称为串口通信协议。
通过波形测试,我们可以看到发送端的数据线里的波形如下图:
在这里插入图片描述
那么帧格式如何定义呢?
下图便是一帧完整的串行通信数据,它一共有10位,并从左往右依次把数据给发送出去。起始位永远是低电平,停止位永远是高电平,中间的是8位二进制数据(用户自定义)。按照这种规则,我们把图中处于高电平状态的数据位相加得到65,从ASCII码表中查到65对应的就是A,通过8个数据位我们便可得到256种不同的信息组合(如下图)。
因此,我们想发送什么数据,就按照ASCII表上的值让微控制器去发送高低电平就可以了。
在这里插入图片描述
在这里插入图片描述
那么波特率在串口通信中有啥作用呢,可不可以随意设置波特率呢?
在发送数据的同时必须要有时间间隔。这里的时间间隔就得看串口通信的波特率了。在第一章图中,我们使用的波特率为9600/s,也就是1每位数据之间的间隔约为100us。
在这里插入图片描述
即每隔100us,微控制器向电脑发送一次高低电平(比如微控制器发送65,电脑收到的就是A)。如果想要使数据更快的发送,可以选择更高的波特率,比如115200/s(即发送时间间隔为8.7us)。
但是我们在编程时设置的串口发送时间间隔必须要和波特率严格对应上,若对应不上,则会出现下图情况。
在这里插入图片描述
即当我们将数据发送过去,接收方可能已经过了接收时间,可能导致数据错乱。
以上就是串口发送数据的底层原理。
在这里插入图片描述
但是我们用串口发送数据时,不需要向上面设置的那么繁琐。以Arduino为例,在程序的最开头设置好波特率,然后直接把C用这个函数发送出去,无需我们设置时间间隔,也无需按照ASCII表像刚才那样一位一位的去发送数据,但该函数底层编程是按照这种思想编写代码,我们只需调用相关库文件和函数即可。
注:视频教程来自B站UP:爱上半导体


http://chatgpt.dhexx.cn/article/a2XvrUaj.shtml

相关文章

串口通信基本原理

目录 串口通信连线: 串口通信时序: 起始位: 数据位: 校验位: 停止位: 总结: 串口通信特点: 基于串口的通讯接口: 串口通信连线: 任何通信都要有信息…

一篇短文让你彻底理解什么是串口通信

1 并行与串行通信 机器的通信方式有两种,分别是并行通信与串行通信。 并行通信:并行通信是指多比特数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干…

Java RXTX 实现串口通信

目录 串口(通信)概述 串口调试助手 RXTX 下载与依赖 Java 开发实战 串口(通信)概述 1、串口通信是指串口按位(bit)发送和接收字节 2、串口通信可以在使用一根线发送数据的同时用另一根线接收数据 3、串口通信常用的协议包括…

串口通信原理

并行通信是指数据的各个位用多条数据线同时进行传输 优点:传输速度快 缺点:占用引脚资源多 串行通信是将数据分成一位一位的形式在一条传输线上逐个传输 优点:通信线路简单、占用引脚资源少 缺点:传输速度慢 同步通信&#xf…

串口通讯基本原理 【详细】

串口通信的基本知识 本文介绍了串口通讯的基本概念、数据格式、通讯方式、典型的串口通讯标准等内容。 串口通讯,RS232,RS485,停止位,奇校验,偶校验 1 串口通讯 串口通讯(Serial Communication),是指外设和计算…

串口通信的基本原理详解

目录 串口通信 串口通信的两种基本方式 异步数据的数据发送过程 异步通信的数据接收过程 9针串口(DB9) TTL与RS232区别 TTL: RS232: 串口通信的数据格式 通讯方式 偶校验与奇校验 停止位 波特率(波特率就是每秒钟传输…

串口通信原理详解

串口通信是一种串行异步通信,通信双方以字符帧作为数据传输单位,字符帧按位依次传输,每个位占固定的时间长度。两个字符帧之间的传输时间间隔可以是任意的,即传输完一个字符帧之后,可以间隔任意时间再传输下一个字符帧…

14_串口通信原理

通信方式的两种: 并行通讯: 传输原理:数据各个位同时传输。 优点:速度快 缺点:占用引脚资源多 串行通信: 传输原理:数据按位顺序传输。 优点:占用引脚资源少 缺点:速度相对较慢 串行通信: 按照数据传送方向,分为: 单工:数据传输只支持数据在一个方向上传输。 半双工:…

【Linux】基于美信串行解串器实现UART串口通信

文章目录 前言一、环境介绍二、硬件配置1. MAX967632. MAX96752F 三、串口通信协议1. 帧格式2. 同步帧3. 应答帧4. 包格式(包由帧组成) 四、内核模块实现 前言 车载项目中串行/解串器是十分常见的外设,目前常用的有两种标准:GMSL…

毫米波雷达图解算法原理(基于TI雷达)

毫米波雷达数据处理原理 前言基础bin文件解读 以下我们取1帧进行操作:对数据矩阵进行操作前的转换——开始计算结果矩阵一维FFT(距离)二维FFT(速度)角度维FFT (假设利用结果已经获取目标)对目标…

【阵列信号处理】DOA估计算法

DOA估计中的ESPRIT算法 ESPRIT算法时一种利用子空间旋转法估计DOA参数的方法,其算法的基本思想是将阵列在结构上分成两个完全一致的子列,两个子列相应阵元偏移的距离相等,也就是说阵列的阵元被分成一对对的形式,而且每一对之间具…

Hector SLAM 原理详解、算法解析

目录 1.原理详解 2.算法解析 1.原理详解 Hector整体算法很直接,就是将激光点与已有的地图“对齐”,即扫描匹配。扫描匹配就是使用当前帧与已经有的地图数据构建误差函数,使用高斯牛顿法得到最优解和偏差量。其工作是实现激光点到栅格地图的转…

MPU 6050姿态角度融合算法

1、介绍 1.1 姿态角(Euler角)pitch yaw roll介绍 飞行器的姿态角并不是指哪个角度,是三个角度的统称。它们是:俯仰、滚转、偏航。你可以想象是飞机围绕XYZ三个轴分别转动形成的夹角。 地面坐标系(earth-surface inert…

linemod算法过程理解

一、提取模板 1、预处理 使用高斯模糊预处理将要作为模板的RGB图 2、模板梯度计算 分别计算RGB三个通道中每个像素点x和y方向的梯度(sobel算子),取幅值最大的作为该像素的梯度,若梯度幅度值小于阈值,则被舍弃 3、梯度离…

MATLAB函数angle、unwrap

一、angle 相位角 语法 P angle(Z)描述 P angle(Z)返回复数数组Z的每个元素的相角(以弧度为单位)。角度介于π之间。对于复数Z,幅值R和相角theta由下式给出 R 绝对值(Z&#xff0…

fbp算法matlab实现,matlab实现fbp算法

matlab提供大量函数,可以方便的完成fbp算法 1)fbp算法原理: 中心切片定理 (CST) : 原数据投影的一维傅立叶变换等于原数据的二维傅立叶变换 投影 --> 一维傅立叶变换 --> 滤波 --> 二维傅立叶反变换 经过上述过程应该得到原始数据 2)投影相关知识 2.1)正投影:对…

一种简单的图形旋转算法

图形旋转好玩又有实用性, 这里介绍一种简单的图形旋转算法. 具体步骤如下: 1. 首先将原图和旋转图的坐标原点都变换到图形的中心位置处. 2. 历遍旋转图形中的每一个pixel, 将pixel的坐标(j,i)反向旋转映射到原图, 得到原图对应的坐标值(Xr,Yr). 3. 考虑到旋转图的尺寸可能大于…

多目标跟踪之数据关联算法——匈牙利算法

零、Track和Detection的cost matrix,distance metric。距离计算的方式有如下几种: 距离cost distance metric,track和detection的距离矩阵。 外观距离appearance distance,来自检测切片ROI的网络特征提取;——余弦距离 运动模型距离 马氏距离,来自检测-跟踪的kalman校正…

EAST算法简单解析

前言 最近写了很多算法代码的解析,但是却很少写原理的解析,这段时间学得快忘得也快,所以寻思这几天写几篇学过算法的原理,可能不是很详细但是一定很简单,利于理解。 算法介绍 EAST: An Efficient and Accurate Scen…

定位算法初探

定位算法初探 一、指纹定位算法介绍 指纹定位(finger-printing localization)算法,是基于室内环境复杂,信号反射折射所形成的在不同位置形成的不同的信号强度信息而提出的一套算法。 指纹算法能很好的利用了反射折射所形成的信号信息,离线首…