STM32串口编程基础知识讲解

news2025/1/20 3:40:20

文章目录

  • 前言
  • 一、串行通信和并行通信
  • 二、全双工,半双工,单工传输
  • 三、同步通信和异步通信
  • 四、波特率
  • 总结


前言

本篇文章给大家介绍一下串口的基础编程知识,这些知识是属于串口的理论知识,在开始学习编写代码的时候必须要掌握这些基本的知识点。

一、串行通信和并行通信

串行通信和并行通信是两种不同的数据传输方式。

串行通信是指在一条单独的通信线路上,通过一个位一个位地传输数据,每个位依次传输,数据帧的每个位之间有一定的延时,数据被逐位发送或接收。串行通信一般使用较少的连接线路,但速度较慢,适合长距离的数据传输,例如串口通信、SPI、I2C等。

并行通信则是指同时在多条通信线路上传输多个位的数据,数据帧的每个位同时传输,数据可以一次性发送或接收。并行通信通常使用较多的线路,但传输速度比串行通信更快,适合短距离、高速数据传输,例如计算机内部的数据总线。

串行通信的优点:

可以通过较少的连接线路进行长距离的数据传输;
数据传输稳定,不容易出现干扰;
适用于低速数据传输,例如串口通信、SPI、I2C等通信协议。

串行通信的缺点:

传输速度较慢,无法满足高速数据传输的需求;
数据传输时间长,会影响实时性;
传输时资源利用率较低。

并行通信的优点:

可以通过多条连接线路同时传输多个位的数据,传输速度快,满足高速数据传输的需求;
数据传输时间短,有利于实时性要求高的应用场景;
传输时资源利用率较高。

并行通信的缺点:

需要较多的连接线路;
由于同步和干扰等问题,数据传输不够稳定;
适用于短距离的数据传输,扩展性差。

在这里插入图片描述

二、全双工,半双工,单工传输

全双工、半双工和单工是用于描述数据通信过程中的传输模式。这些模式在数据传输速度、带宽利用率、传输方向的选择和设备数量和成本等方面都有不同的限制和影响。

全双工传输模式:在全双工传输模式中,数据可以在通信双方之间同时传输,双方都可以发送和接收数据。当一方发送数据时,另一方同步地接收数据。全双工可以提供高速数据传输和高资源利用率。例如,电话和网络视频通信就使用了全双工模式。

在这里插入图片描述

半双工传输模式:在半双工传输模式中,通信双方在同一通信通道上交替地发送和接收数据。当一方发送数据时,另一方必须等待该数据发送完成后才能开始发送数据。这种传输模式适用于设备之间的低速短距离通信和碰撞避免的数据通信环境。例如,对讲机和传统的以太网通信就使用了半双工模式。

在这里插入图片描述

单工传输模式:在单工传输模式中,数据只能单向传输,只能由一方发送,而另一方只能接收数据。这种传输模式适用于数据流向单向的情况,例如无线电和广播通信。

在这里插入图片描述

三、同步通信和异步通信

同步通信和异步通信是用于描述设备之间数据传输时的两种基本通信模式,它们在通信数据的协同方式、数据传输速度、复杂度和适用范围等方面有很大区别。

同步通信:同步通信是指通信的发送和接收方需要在传输数据时,按照一个协议定时进行数据交换,以保证数据帧的同步传输。通信的双方通过同步信号进行协调,要求通讯双方的时钟频率和数据传输速率必须准确一致,以保证数据传输的正确性和精度。同步通信协议适用于高速数据传输,例如多媒体数据的传输、高速网卡以太网通信等。

异步通信:异步通信是指通信的双方不需要按照时间协议进行数据同步交换,通信的两方逐个数据的传输通过起始位、数据位、校验位和停止位的组合进行数据识别和帧同步,非常适用于短消息、电子邮件、串口通信等异步数据交换需求。数据在发送或接收后,无需确认后才能开始再次发送或接收数据。

四、波特率

波特率是指数据通信设备在数据传输中的数据传输速率,一般表示成以比特每秒(bps)为单位的数据的传输速度。

波特率是衡量通信速率的重要指标,通常和数据位数、停止位数、校验位等其他参数一起描述数据传输的特征。不同的波特率对应不同的进行数据传输时的时钟周期,不同的传输速率会对数据传输距离、数据精度和数据传输出错率等方面产生影响。如果发送方和接收方的波特率不一致,可能会导致数据传输错误。

在选择波特率时,需要考虑通信协议、数据长度、传输距离和时钟精度等多方面的因素。波特率的选择应该能够在充分保证数据传输准确性的同时,尽可能地提高数据传输的速率,以满足设备之间通信的要求。

常见的波特率有1200bps、2400bps、4800bps、9600bps、19200bps、38400bps等,在不同的应用场景和数据传输需求中选择合适的波特率,以达到最优的数据传输效果。

当把波特率设置为115200bps时,每秒可以传输的数据量是11520字节,计算步骤如下图:

在这里插入图片描述

总结

本篇文章讲解了串口的基本概念知识,大家在学习编写代码时将其掌握才能更好的理解代码。

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

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

相关文章

消息队列中间件 - RabbitMQ消息的持久化、确认机制、死信队列

持久化和应答机制Ack 消息队列中间件系列的最后一篇了,RabbitMQ消息的持久化、确认机制、死信队列、负载均衡等一系列进行说明。 消息持久化 当RabbitMq重启以后,未消费的消息,可以在服务重启后继续消费,不会丢失。 应答机制A…

nodejs处理xlsx文件生成json文件

nodejs处理xlsx文件有好几种方式,这里用的是js-xlsx库; 需求 有一个 xlsx 的文件,里面有几个不同的 sheet,需要读取这个表格中不同 sheet 的数据,并且为每个 sheet 生成对应的 json 文件。 例如有一个名为 template…

草根测试员的涨薪之路:我是如何从0到月薪20K的?(仅供借鉴)

我是一名转IT测试人,我的专业是化学,去化工厂实习才发现这专业的坑人之处,化学试剂害人不浅,有毒,易燃易爆,实验室经常用丙酮,甲醇,四氯化碳,接触多了,吃个饭…

网络安全:Hydra 端口爆破工具.(九头蛇)

网络安全:Hydra 端口爆破工具.(九头蛇) Hydra 也叫九头蛇,是一款开源的暴力PJ工具,集成在kali当中。可以对多种服务的账号和密码进行爆破,包括 Web 登录、数据库、SSH、FTP 等服务. 目录: 网络…

内网渗透—域防火墙策略同步、不出网隧道上线

内网渗透—域防火墙策略同步、不出网隧道上线 1. 前言2. 域防火墙2.1. 域控开启防火墙同步测试2.1.1. 查看域主机防火墙策略2.1.2. 域控防火墙策略下发同步2.1.2.1. 创建组策略2.1.2.2. 编辑组策略2.1.2.3. 编辑防火墙2.1.2.4. 同步防火墙策略 2.2. 域控出入站规则同步2.2.1. 查…

【数据结构】队列及其实现

目录 😎前言 认识队列 队列的初始化 队列判空 数据队尾入队 数据队头出队 取队头数据 取队尾数据 队列数据的个数 队列销毁 总结 😎前言 上次我们学习了栈及其实现,当然也少不它的好兄弟队列啦,今天我们开始队列的学习队…

大模型Founation Model

一、背景 自从chatgpt,gpt4以特别好的效果冲入人们的视野中,也使得AI产业发生了巨大变革,从17年以来的bert,将AI的各种领域都引入bert类的fine-tune方法,来解决单个领域单个任务的一一个预训练模型。在学术界和工业界…

Redis---事务管道

目录 一、Redis的事务是什么? 1.1 Redis和关系型数据库事务的区别 二、怎么玩Redis事务? 2.1 正常执行: 2.2 放弃事务 2.3 全体连坐 2.4 冤头债主 2.5 watch监控 三、管道 3.1 为什么会引入管道这个概念呢?我们首先来看一…

前后端分离项目部署上线流程-和错误解决

需求:就是想把自己写的前后端项目传上去不再是只有本地可以访问,其他人也可以访问我这个项目,以此记录免得后面搞忘了,文章很长,也很细,我自己上线碰到的错误也会发一下,建议看完哦 1.首先买个…

U盘连接电脑不显示怎么办?

对于很多Windows 11/10/8/7系统下的用户,U 盘、SD卡或其他移动硬盘未检测到或磁盘管理中不显示,这是一个非常普遍的问题。下面我们就来了解一下出现这种情况的常见原因和解决办法。 为什么U盘没有显示在磁盘管理中? U盘在电脑磁盘管理中不显…

GPT专业应用:生成实习报告

正文共 1070 字,阅读大约需要 4 分钟 大学生必备技巧,您将在4分钟后获得以下超能力: 快速生成实习报告 Beezy评级 :B级 *经过简单的寻找, 大部分人能立刻掌握。主要节省时间。 推荐人 | Kim 编辑者 | Linda ●图片由…

旅游网站设计方案

针对涉旅企业的旅游网站设计,主要要考虑以下几点: 1、考虑网站的业务开展需求,能够有效将衣、食、住、行、游、购、娱融合在一起,满足旅游企业的业务开展需求。 2、网站的设计结构,符合目前的网站开发结构,…

vue3鼠标经过显示按钮

在前端开发中,我们经常需要在页面中添加一些交互效果来提升用户体验。其中一个常见的需求就是鼠标经过某个元素时显示一个按钮,这个按钮可以用于触发一些操作或者显示更多的内容。 在本篇文章中,我将会介绍如何使用 Vue3 实现一个鼠标经过显…

七人拼团系统开发模式常见问题详解

七人拼团模式最近在市场上非常火爆,很多企业商家都在用这个模式。但同时也有很多人对这个模式不太了解,纷纷私信问我,今天就在这里简单说一下七人拼团模式的常见问题。 1、什么是七人拼团? 七人拼团就是用户购买专区礼包后&#…

Redis的数据类型

参考文档:https://www.runoob.com/redis/redis-tutorial.html redis当中一共支持五种数据类型,分别是: string字符串 list列表 set集合 hash表 zset有序集合 1、对字符串string的操作 下表列出了常用的 redis 字符串命令 1 设置值 获取…

报错:To install it, you can run : npm install --save @api/***解决方法

启动项目时,控制台报错,在此记录一下 以下是报错原因: 报错信息如下 To install it, you can run: npm install --save /api/tNursingStaffCirculation Proxy error: Could not proxy request auth/code from localhost:8013 to http://local. See ht…

【下载】【you-get】用电脑下载网页视频

分享一下,此方法是在网络上看到的,但忘了出处。 一、前提 电脑安装了python软件,版本无要求。建议上官网下载软件。记得配置好环境(将pyhton的scripts文件夹的路径加到用户变量里)。 二、方法 1、安装you-get库 &am…

本周精彩!关于 Linux 内核宕机和超融合 Kata 虚拟化容器技术介绍 | 第 77-78 期

本周「龙蜥大讲堂」预告来啦!我们邀请了系统运维 SIG Contributor 刘馨蔚分享《Linux 内核宕机介绍和简单分析思路》,浪潮数据超融合云原生工程师王永超分享《超融合产品中的 Kata Containers》主题演讲,精彩多多,快来扫码入群&am…

linux0.12-9-1-总体功能

[395页] 9-1 总体功能 对硬盘和软盘块设备上数据的读写操作是通过中断程序进行的。内核每次读写的数据量以一个逻辑块(1024字节)为单位,而块设备控制器则是以扇区(512字节)为单位。在处理过程中,使用了读写请求项等待队列来顺序缓冲一次读写多个逻辑块…

测试用例常见的几种设计方法

我们将从以下几种常见的方法入手,讲解测试用例的设计方法: 基于需求的设计方法、等价类、边界值、因果图、正交排列、场景设计法、错误猜测法。 1.测试用例的基本要素 测试用例(Test Case)是为了实施测试而向被测试的系统提供的一…