当前位置: 首页 > news >正文

2.STM32之通信接口《精讲》之USART通信

有关通信详解进我主页观看其他文章!
【免费】SPIIICUARTRS232/485-详细版_UART、IIC、SPI资源-CSDN文库

通过以上可以看出。根据电频标准,可以分为TTL电平,RS232电平,RS485电平,这些本质上都属于串口通信。有区别的仅是电平标准不一样,TTL电平3.3V代表逻辑1,0V代表逻辑0

你所提到的电平标准(TTL、RS232、RS485)确实是串口通信中常见的电压标准,它们本质上都涉及到数据传输中的电平定义,但它们在具体实现上有一些关键的差异。下面是每种电平标准的详细说明:

1. TTL电平(Transistor-Transistor Logic)

  • 电压范围
    • 逻辑1:+3.3V 或 +5V(通常为+5V)
    • 逻辑0:0V
  • 特点
    • TTL电平广泛用于微控制器、单片机等系统中,因其高电压(+5V)和较低的功耗而成为常见的通信方式。
    • TTL信号通常只能通过两根线传输,且电压变化速度较快。
    • 易于实现与逻辑电路直接兼容,但传输距离有限。

2. RS232电平(Recommended Standard 232)

  • 电压范围
    • 逻辑1(标识):-3V 到 -15V
    • 逻辑0(空间):+3V 到 +15V
    • (0V表示空闲状态)
  • 特点
    • RS232常用于点对点的串行通信,较长的传输距离和较高的抗干扰能力。
    • 电压较高,适用于较长的传输距离(几十米),并且常见于计算机与外设的连接(如调制解调器、串口打印机等)。
    • RS232信号传输是单端的,因此更容易受到噪声的干扰,尤其在长距离传输时。

3. RS485电平(Recommended Standard 485)

  • 电压范围
    • 逻辑1:+2V 到 +6V(差分信号)
    • 逻辑0:-2V 到 -6V(差分信号)
    • (0V表示空闲状态)
  • 特点
    • RS485使用差分信号,这意味着它使用两条信号线,并通过两线间的电压差来传输数据。相比单端信号传输,差分信号对噪声具有更强的抗干扰能力。
    • RS485支持更长的传输距离(最大可达1200米),并且能够实现多点通信,适用于多台设备的串行通信(如工业自动化、远程监控系统等)。
    • 需要注意的是,RS485的电平变化是差分的,即信号线之间的电压差决定逻辑1和逻辑0。

总结:

  • TTL:用于短距离、高速通信,适合微控制器和简单设备之间的通信,电平标准是+5V(或+3.3V)。
  • RS232:常见于计算机和外设之间的通信,适合中等距离传输,电平标准在±3V到±15V之间。
  • RS485:适合长距离、多点通信,电平通过差分信号来传输,电压范围为±2V到±6V。

这三种电平标准都属于串口通信(Serial Communication),而它们之间的主要区别就在于电压范围、传输距离、抗干扰能力以及是否支持多点通信等方面

在串口通信中,数据帧(Data Frame)是数据传输的基本单位,通常由起始位、数据位、校验位停止位组成。每个部分在数据传输中都有特定的功能。下面是各个部分的详细解释,并附上几个示例:

1. 波特率(Baud Rate)

  • 定义:波特率表示串口通信的速率,单位是波特(baud),即每秒钟传输的符号(或比特)数量。波特率越高,传输速度越快。
  • 常见波特率值:9600, 19200, 38400, 57600, 115200(bps)。
  • 例子:波特率为9600,意味着每秒钟最多可以传输9600个比特。

2. 起始位(Start Bit)

  • 定义:每个数据帧的开始通常由一个起始位来标识。起始位的电平通常固定为低电平(0),这有助于接收设备判断数据帧的开始。
  • 作用:起始位是用来告诉接收方数据帧的开始位置。通常为1个比特。
  • 例子:假设有一个数据帧,起始位就是数据帧的第一个信号,通常为低电平(0),如:0

3. 数据位(Data Bits)

  • 定义:数据位是实际传输的数据部分,通常包括5、6、7或8个比特(最常见的是8位)。它们按照顺序表示待传输的信息。
  • 作用:数据位传输的是实际的信息,每一位为一个比特(0或1),并且通常低位先行,即数据的低位(LSB,Least Significant Bit)在前。
  • 例子:假设我们传输的8位数据为10101010,那么数据位的内容就是10101010

4. 校验位(Parity Bit)

  • 定义:校验位是用于数据验证的一位,它根据数据位的值来决定。其目的是检查数据在传输过程中是否出现错误。常见的校验方式有奇偶校验(Even Parity、Odd Parity)和无校验(None)。
    • 无校验(None):不使用校验位。
    • 奇校验(Odd Parity):使得数据位和校验位的1的个数为奇数。
    • 偶校验(Even Parity):使得数据位和校验位的1的个数为偶数。
  • 作用:校验位能够帮助接收方验证接收到的数据是否正确。若检测到错误,则可以请求重新传输。
  • 例子:如果数据位为10101010,并且使用偶校验(Even Parity),由于数据中1的个数是4个(偶数),因此校验位为0;若是奇校验(Odd Parity),校验位将是1,以使得1的个数为奇数。

5. 停止位(Stop Bit)

  • 定义:停止位用于标识数据帧的结束,通常为高电平(1),它的作用是为接收方提供数据帧之间的间隔,确保数据的正确分割。
  • 作用:停止位确保接收方能够正确地识别每个数据帧的结束位置,并准备接收下一个数据帧。停止位的长度通常是1、1.5或2个比特。
  • 例子:在一个数据帧的最后,停止位是1个或2个比特的高电平(1)。例如,如果使用1个停止位,则数据帧的结束就是1

数据帧的组成

假设我们使用8个数据位,1个校验位,1个停止位的配置,波特率为9600,下面是一个具体的例子:

示例1:无校验位

假设我们要发送的数据是10101010,以下是一个数据帧的组成:

  • 起始位0(低电平,标识数据的开始)
  • 数据位10101010
  • 校验位(不使用校验位)
  • 停止位1(高电平,标识数据的结束)

因此,整个数据帧是:

 

复制代码

0 10101010 1

表示:起始位(0) + 数据位(10101010) + 停止位(1)

示例2:奇校验

假设我们要发送的数据是1100101,并且使用奇校验,则数据帧如下:

  • 起始位0
  • 数据位1100101
  • 校验位:因为数据中1的个数是3个(奇数),为了使总数保持奇数,所以校验位为0
  • 停止位1

因此,整个数据帧是:

 

复制代码

0 1100101 0 1

表示:起始位(0) + 数据位(1100101) + 校验位(0) + 停止位(1)

示例3:偶校验

假设我们要发送的数据是1010110,并且使用偶校验,则数据帧如下:

  • 起始位0
  • 数据位1010110
  • 校验位:因为数据中1的个数是4个(偶数),为了保持偶数,校验位应为0
  • 停止位1

因此,整个数据帧是:

 

复制代码

0 1010110 0 1

表示:起始位(0) + 数据位(1010110) + 校验位(0) + 停止位(1)

总结

  • 波特率:定义串口通信速率(如9600bps、115200bps等)。
  • 起始位:表示数据帧的开始,通常为低电平(0)。
  • 数据位:传输的实际数据,常见为5到8位,低位先行。
  • 校验位:用于验证数据的正确性,可以是奇校验、偶校验或无校验。
  • 停止位:标识数据帧的结束,通常为1或2个比特的高电平(1)。

通过这些组成部分,串口通信能够确保数据的可靠传输。



精彩继续----------------------------------------------32.STM32之通信接口《精讲》之USART通信,实战教程

相关文章:

2.STM32之通信接口《精讲》之USART通信

有关通信详解进我主页观看其他文章!【免费】SPIIICUARTRS232/485-详细版_UART、IIC、SPI资源-CSDN文库 通过以上可以看出。根据电频标准,可以分为TTL电平,RS232电平,RS485电平,这些本质上都属于串口通信。有区别的仅是…...

Bootstrap和jQuery开发案例

目录 1. Bootstrap和jQuery简介及优势2. Bootstrap布局与组件示例:创建一个响应式的表单界面 3. jQuery核心操作与事件处理示例:使用jQuery为表单添加交互 4. Python后端实现及案例代码案例 1:用户登录系统Flask后端代码前端代码 5. 设计模式…...

Qt 之 qwt和QCustomplot对比

QWT(Qt Widgets for Technical Applications)和 QCustomPlot 都是用于在 Qt 应用程序中绘制图形和图表的第三方库。它们各有优缺点,适用于不同的场景。 以下是 QWT 和 QCustomPlot 的对比分析: 1. 功能丰富度 QWT 功能丰富&a…...

【STM32】MPU6050简介

文章目录 MPU6050简介MPU6050关键块带有16位ADC和信号调理的三轴MEMS陀螺仪具有16位ADC和信号调理的三轴MEMS加速度计I2C串行通信接口 MPU6050对应的数据手册:MPU6050 陀螺仪加速度计 链接: https://pan.baidu.com/s/13nwEhGvsfxx0euR2hMHsyw?pwdv2i6 提取码: v2i6…...

Oracle 单机及 RAC 环境 归档模式及路径修改

Oracle 数据库的使用过程中经常会根据需求的不同而调整归档模式,也经常会修改归档文件存放路径。 下面分别演示单机及 RAC 环境下修改归档模式及路径的操作步骤。 一、单机环境 1.查询当前归档模式及路径 SQL> archive log list Database log mode …...

抽象java入门1.5.3.1——类的进阶

前言:在研究神技代码Hello word的时候,发现了一个重大公式bug,在代码溯源中,我发现了一个奇怪的东西,就是OUT不是类中类(不是常规类的写法) 内容总结: 代码运行的顺序复习 正片开始…...

python——模块 迭代器 正则

一、python模块 先创建一个 .py 文件,这个文件就称之为 一个模块 Module。 使用模块的优点: 模块化编程,多文件编程 1.2 模块的使用 1.2.1 import语句 想要B.py文件中,使用A.py文件,只需要在B.py文件中使用关键字…...

QT仿QQ聊天项目,第三节,实现聊天界面

一,界面控件示意图 界面主要由按钮QPushButton,标签QLabel,列表QListWidget 要注意的是QListWidget既是实现好友列表的控件,也是实现聊天气泡的控件 二,控件样式 QPushButton#btn_name {border:none;}QPushButton#btn_close {border:1px;bac…...

Linux-何为CentOS

今年公司做的 POC 项目中,越来越多地听到客户开始或已经将系统迁移到麒麟、统信、openEuler,但还是有很多客户在用CentOS 7,或者和CentOS 7兼容的其他Linux。今天把CentOS 7相关概念统一整理下供后续参考使用 何为CentOS CentOS — Communit…...

C++中的 std::optional

std::optional<T>是 C17 中的一个标准库组件&#xff0c;optional <T>对象默认是空的&#xff0c;也就是处于无效状态&#xff0c;给它赋值后因为里面有了元素&#xff0c;就变成了有效状态。 1.引入背景 c函数常用返回值表示函数是否执行成功。如返回nullptr表示…...

猫狗识别之BUG汇总

一、github登不上去问题 下载watt toolkit 下载地址&#xff1a;https://steampp.net/ 可以下载后加速&#xff0c;访问github 二、猫狗总体参考核心 B哥的博客 https://github.com/bubbliiiing/classification-keras?tabreadme-ov-file 三、CSDN很多会员才能阅读问题 根据…...

【论文复现】自动化细胞核分割与特征分析

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀自动化细胞核分割与特征分析 引言1. 效果展示2. HoverNet概述3. HoverNet原理分析整体网络框架实例分割原理 4. HoverNet评估结果5. 复现过程…...

排序算法 -快速排序

文章目录 1. 快速排序&#xff08;Quick Sort&#xff09;1.1、 简介1.2、 快速排序的步骤 2. Hoare 版本2.1、 基本思路1. 分区&#xff08;Partition&#xff09;2. 基准选择&#xff08;Pivot Selection&#xff09;3. 递归排序&#xff08;Recursive Sorting&#xff09; 2…...

K8S 查看pod节点的磁盘和内存使用情况

查看某个节点的磁盘使用率&#xff1a; kubectl exec -it pod名称 -n 命名空间 – df -h 查询所有节点的已使用内存&#xff1a; kubectl top pods --all-namespaces | grep itsm 查询某个节点的总内存&#xff0c; kubectl describe pod itsr-domain-59f4ff5854-hzb68 --nam…...

华为HCIP——MSTP/RSTP与STP的兼容性

一、MSTP/RSTP与STP的兼容性的原理&#xff1a; 1.BPDU版本号识别&#xff1a;运行MSTP/RSTP协议的交换机会根据收到的BPDU&#xff08;Bridge Protocol Data Unit&#xff0c;桥协议数据单元&#xff09;版本号信息自动判断与之相连的交换机的运行模式。如果收到的是STP BPDU…...

AI 大模型如何重塑软件开发流程:现状与未来展望

随着人工智能技术的飞速发展&#xff0c;AI 大模型的出现正在深刻改变软件开发行业的传统模式。从代码生成到智能测试&#xff0c;AI 已渗透到软件开发的各个环节&#xff0c;为开发者提供了前所未有的效率提升&#xff0c;同时也带来了全新的挑战与思考。在本文中&#xff0c;…...

3步实现贪吃蛇

方法很简单&#xff0c;打开页面&#xff0c;复制&#xff0c;粘贴 一.整体思维架构 我们根据游戏的开始&#xff0c;运行&#xff0c;结束&#xff0c;将整个游戏划分成三个部分。在每个部分下面又划分出多个功能&#xff0c;接下来我们就根据模块一一实现功能。 二.Gamesta…...

华东师范大学数学分析第五版PDF习题答案上册及下册

“数学分析”是数学专业最重要的一门基础课程&#xff0c;也是报考数学类专业硕士研究生的专业考试科目。为了帮助、指导广大读者学好这门课程&#xff0c;编者编写了与华东师范大学数学科学学院主编的《数学分析》(第五版)配套的辅导用书&#xff0c;以帮助读者加深对基本概念…...

MySQL之联合查询

前文我们了解到了数据库设计的范式要求&#xff0c;故生活中很多相互关联的数据被拆分开来&#xff0c;但彼此之间通过某种条件链接&#xff0c;此文联合查询就是通过多表之间的连接关系&#xff0c;来查询我们想要的数据&#xff0c;即 《联合查询》 1. 联合查询简介 1.1 为什…...

[C/C++] 定位新表达式 placement new

在C中&#xff0c;表达式 new (ptr) T(); 展示了一种特殊的内存分配和对象构造方式&#xff0c;这被称为定位新表达式&#xff08;placement new&#xff09;。 通常&#xff0c;当我们使用 new 关键字时&#xff0c;它会在堆上动态分配内存&#xff0c;并调用相应的构造函数来…...

【MySQL】MySQL的笛卡尔积现象是什么?简单说说

笛卡尔积好像是个科学家&#xff0c;也是个学术概念&#xff0c;在MySQL中表示交叉连接&#xff0c;即&#xff1a;匹配一切所有的可能 举例如下&#xff1a; 准备两张表 【employee表】 emp_idlast_namedept_id1Smith12Johnson2 【department表】 dept_iddepartment_nam…...

《InsCode AI IDE:编程新时代的引领者》

《InsCode AI IDE&#xff1a;编程新时代的引领者》 一、InsCode AI IDE 的诞生与亮相二、独特功能与优势&#xff08;一&#xff09;智能编程体验&#xff08;二&#xff09;多语言支持与功能迭代 三、实际应用与案例&#xff08;一&#xff09;游戏开发案例&#xff08;二&am…...

微搭低代码私有化部署搭建教程

目录 1 下载远程工具2 查看服务器配置3 下载部署包4 安装部署包5 系统登录总结 最近微搭推出了私有化部署版本&#xff0c;正好官方赠送了我一台云服务器&#xff0c;练习一下部署的过程&#xff0c;本篇作为一个实践的记录 1 下载远程工具 一般我们使用的是云服务器&#xff…...

【在Linux世界中追寻伟大的One Piece】多路转接epoll(续)

目录 1 -> epoll的工作方式 1.1 -> 水平触发(Level Triggered)工作模式 1.2 -> 边缘触发(Edge Triggered)工作模式 2 -> 对比LT与ET 3 -> 理解ET模式和非阻塞文件描述符 4 -> epoll的使用场景 5 -> epoll示例 5.1 -> epoll服务器(LT模式) 5.2…...

【不写for循环】玩玩行列

利用numpy的并行操作可以比纯用Python的list快很多&#xff0c;不仅如此&#xff0c;代码往往精简得多。 So, 这篇来讲讲进阶的广播和花哨索引操作&#xff0c;少写几个for循环&#xff08;&#xff09;。 目录 一个二维的例题 一个三维的例题 解法一 解法二 更难的三维例题…...

【Nginx】反向代理Https时相关参数:

在Nginx代理后台HTTPS服务时&#xff0c;有几个关键的参数需要配置&#xff0c;以确保代理服务器能够正确地与后端服务器进行通信。一些重要参数的介绍&#xff1a; proxy_ssl_server_name&#xff1a;这个参数用于指定是否在TLS握手时通过SNI&#xff08;Server Name Indicati…...

第 17 章 - Go语言 上下文( Context )

在Go语言中&#xff0c;context包为跨API和进程边界传播截止时间、取消信号和其他请求范围值提供了一种方式。它主要应用于网络服务器和长时间运行的后台任务中&#xff0c;用于控制一组goroutine的生命周期。下面我们将详细介绍context的定义、使用场景、取消和超时机制&#…...

Android Framework AMS(16)进程管理

该系列文章总纲链接&#xff1a;专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节主要解读AMS 进程方面的知识。关注思维导图中左上侧部分即可。 我们本章节主要是对Android进程管理相关知识有一个基本的了解。先来了解下L…...

STM32设计防丢防摔智能行李箱

目录 目录 前言 一、本设计主要实现哪些很“开门”功能&#xff1f; 二、电路设计原理图 1.电路图采用Altium Designer进行设计&#xff1a; 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 随着科技的不断发展&#xff0c;嵌入式系统、物联网技术、智能设备…...

【异常解决】Linux shell报错:-bash: [: ==: 期待一元表达式 解决方法

博主介绍&#xff1a;✌全网粉丝21W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

学做蛋糕有哪些网站/做一个网站要花多少钱

在多线程程序中&#xff0c;同步修饰符用来控制对临界区代码的访问。其中一种方式是用synchronized关键字来保证代码的线程安全性。在Java中&#xff0c;synchronized修饰的代码块或方法不会被多个线程并发访问。它强制要求线程在进入一个方法之前获得一个锁&#xff0c;在离开…...

网站设计建设趋势/网站seo优化技巧

高速数字设计&#xff08;黑魔书&#xff0c;业界圣经&#xff09; 信号完整性和电源完整性分析&#xff08;伯格厅是MIT大神&#xff0c;SI,PI专家&#xff09; 于争信号完整性揭秘&#xff08;配视频讲解很好&#xff09; Cadence高速电路板设计与仿真&#xff08;周润景的…...

免费制作电子贺卡的app/百度seo是什么意思呢

调和级数的第n项形式为&#xff1a;11/21/3…1/n class Exer1{public static void main(String[] args) { double sum 0.0;int i 1;while (true){sum 1.0/i;if (sum > 10){break;}i;}System.out.println(i);} } while(true)句型一定要注意...

网站访客qq获取/在线视频用什么网址

摘要&#xff1a;华为导流测试平台通过对线上流量回放到被测环境中&#xff0c;利用线上真实流量进行充分测试&#xff0c;保证业务系统稳定上线。但是业务在导流测试过程中现网数据库往往难以同步到测试环境&#xff0c;导致现网数据无法正常回放&#xff0c;测试价值降低。由…...

什么类型的产品可以做网站出口/产品怎么做推广和宣传

一、员工在公司猝死公司应承担什么责任 1、员工在公司猝死公司应承担赔偿责任。员工在公司上班时猝死应算工伤。 2、法律规定&#xff0c;在工作时间和工作岗位&#xff0c;突发疾病死亡或者在48小时之内经抢救无效死亡的视同工伤&#xff0c;可以要求单位按工伤进行赔偿。 …...

在哪家网站做淘宝客最好/网站推广服务

今年一直传得很火的大屏iPad Plus将会配备触控笔&#xff0c;苹果也为此申请了触控笔申请专利&#xff0c;其实作为大屏手机的iPhone6/6 Plus以及iPad也需要一支触控笔。可是一般的触控笔少则几十块&#xff0c;贵的则要几百块。其实不花钱我也能够拥有触控笔。最近&#xff0c…...