串口通讯(串行接口通讯)

文章目录

  • 一、串行通讯是什么?
  • 二、种类
  • 三、并行与串行的区别
  • 四、通信方式
  • 总结


一、串行通讯是什么?

串行通讯是通信双方按位进行,遵守时序的一种通信方式。
串行通信中,将数据按位依次传输, 每位数据占据固定的时间长度,即可使用少数几条通信线路就可以完成系统间交换信息。
我们首先要使能 GPIO 时钟, 然后使能复用功能时钟,同时要把 GPIO 模式设置为复用功能对应的模式。这些准备工作做完之后, 剩下的当然是串口参数的初始化设置,包括波特率,停止位等等参数。在设置完成只能接下来 就是使能串口,这很容易理解。同时,如果我们开启了串口的中断,当然要初始化 NVIC 设置中断优先级别,最后编写中断服务函数。
串行通信最重要的参数是波特率、数据位、停止位和奇偶校验。

二、种类

串行通信协议是包括的有内部通信系统协议和系统间协议,内部系统协议有CAN协议、I2C协议、SPI协议;系统间协议有USART协议、UART协议、USB协议。

三、并行与串行的区别

串行:一个字节的数据,排成一行发送给接收设备。
并行:一个字节的数据,排成一列发送给接收设备。那当然并行速率快、吞吐量大、不过消耗IO资源也很多。

数据传送方式不同:串行口传输方式为数据排成一行、一位一位送出数据;并行口传输8位数据一次送出。
针脚不同:串行口针脚少,消耗IO资源少;并行口针脚多,消耗IO资源多。
用途不同:串行口主要用在速度要求不高、有一定距离的传输场景,如UART,I2C通信。并行口多用于传输速率要求高、吞吐量大的场景,如FSMC(Flexible Static Memory Controller,可变静态存储控制器),DVP(Digital Video Port,数字视频接口)等接口。

四、通信方式

  1. 同步通信:带时钟同步信号传输,SPI(全双工)、I2C(半双工)
  2. 异步通信:不带时钟同步信号,UART(全双工)、单总线(半双工)
    串行通信:
    单工:数据传输只支持数据在一个方向上传输
    半双工:允许数据在两个方向上传输,但在某一时刻只允许数据在一个方向上传输
    全双工:允许数据同时在两个方向上传输,要求收发设备都有独立的接收、发送能力

总结

串行通信作为计算机通信方式之一,主要起到主机与外设以及主机之间的数据传输作用,串行通信具有传输线少、成本低的特点,主要适用于近距离的人-机交换、实时监控等系统通信工作当中,借助于现有的电话网也能实现远距离传输,因此串行通信接口是计算机系统当中的常用接口。

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

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

相关文章

计算机图形学 实验

题目要求 1.1 实验一:图元的生成:直线、圆椭区域填充 你需要完成基本的图元生成算法,包括直线和椭圆。 在区域填充中,要求你对一个封闭图形进行填充。你需要绘制一个封 闭图形(例如多边形),并选…

2024美赛数学建模问题A题思路模型分析 ——资源可用性和性别比例

虽然有些动物物种不存在通常的雄性或雌性,但大多数物种基本上都是雄性或雌性。虽然许多物种在出生时的性别比例为 1:1,但其他物种的性别比例却偏离了平均值。这就是所谓的适应性性别例变异。例如,美洲鳄孵卵巢的温度会影响其出生时的性别比例…

Hadoop3.x基础(3)- MapReduce

来源: B站尚硅谷 目录 MapReduce概述MapReduce定义MapReduce优缺点优点缺点 MapReduce核心思想MapReduce进程常用数据序列化类型MapReduce编程规范WordCount案例实操本地测试提交到集群测试 Hadoop序列化序列化概述自定义bean对象实现序列化接口(Writable&#xff…

新手不会Git也能玩Github吗?

新手不会Git也能玩Github吗? 前言使用Github的准备步骤使用一种访问外网资源的方法(这一步才是新手最容易)注册账号 创建一个自己的仓库创建完仓库后的界面 搜索你想要的代码类型以搜索坦克大战为例以下载烟花代码为例 总结 前言 说到Github&…

人工智能福利站,初识人工智能,机器学习,第四课

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

程序小问-优先定义属性 而不是直接使用变量的主要原因?

在程序设计中,特别是在面向对象编程(OOP)中,定义属性(也称为成员变量或实例变量)而不是直接使用变量的主要原因有以下几点: **1 封装:**封装是面向对象编程的四大基本特性之一。通过…

SpringBoot实现轻量级接口反向代理、转发

目录 1、基本的对象1.1 配置类1.2 实体DTO1.3 路由代理拓展器1.4 请求对象 RestTemplate 2、核心转发代码3、暴露接口4、基础配置 前言:想实现一个轻量级的接口反向代理和转发的一个接口服务,可以通过这个服务做一些需要认证才能访问的接口给到前端使用&…

如何使用 Gzip 和 NGINX 来减小 Odoo 网站和后端的页面大小

Odoo 是现代最杰出、最可靠的 ERP 解决方案之一。它配备了广泛的功能和强大的社区。与其他 ERP 解决方案相比,Odoo 的最大优势之一是它配备了内置网站和电子商务解决方案,易于设置和部署。将所有会计、库存和订阅功能与网站集成,使 Odoo 不仅…

listagg、xmlagg、group_concat()函数用法

三种聚合函数 listagg函数XMLAGG函数GROUP_CONCAT()函数 listagg函数 listagg 是oracle数据库中的函数,可以使用指定连接符将字符串连接。 如有表 AREAS: CREATE TABLE AREAS (AREA_CODE VARCHAR(32) NULL COMMENT 地区编码,AREA_NAME VARCHAR(32) NUL…

我已经入驻多多

我已经入驻多多面包多平台 啦! 作为一位专注于帮助人们部署Python环境、探索人工智能和JavaEE技术,并创作计算机课程设计相关作品的创作者。我的作品类型涵盖了各种技术领域,旨在为学习者提供实用的资源和指导。 在CSDN拥有1100个粉丝的基础上&#x…

Spring源码研究导航

前言 这是我拜读源码的成果,大家好好珍惜,未来会有更多的更新。 目录 Spring的事件监听机制 BeanFactory创建过程(基于Servlet)

【学习心得】Django框架自带的密码加解密方法

一、前端代码 &#xff08;1&#xff09;保存原始密码&#xff08;以学生注册为例&#xff09; <form action"{% url student:register %}" method"post" id"form" >{% csrf_token %}<input type"text" name"stu_name…

arcgis javascript api4.x加载非公开或者私有的arcgis地图服务

需求&#xff1a; 加载arcgis没有公开或者私有的地图服务&#xff0c;同时还想实现加载时不弹出登录窗口 提示&#xff1a;​ 下述是针对独立的arcgis server&#xff0c;没有portal的应用场景&#xff1b; 如果有portal可以参考链接&#xff1a;https://mp.weixin.qq.com/s/W…

Spark streaming写入delta数据湖问题

问题1 一个batch运行时间过长 检查发现问题出现在merge写文件时间过长&#xff0c;一个batch本来应该是控制在1min。但项目上线到生产环境&#xff0c;检查spark streaming的job&#xff0c;发现数据在merge写入到数据湖时&#xff0c;往往超过1小时。继续排查&#xff0c;发现…

php工厂模式

在PHP中&#xff0c;工厂模式是一种创建型设计模式&#xff0c;用于将对象的创建过程封装到一个单独的类&#xff08;即工厂类&#xff09;中。通过使用工厂模式&#xff0c;客户端代码不需要知道如何实例化具体的产品类&#xff0c;而是直接与抽象接口或工厂进行交互&#xff…

MapStruct 使用

MapStruct最详细的使用教程&#xff0c;别在用BeanUtils.copyProperties () mapstruct使用和详解 项目背景 之前查看网上别人写的文章&#xff0c;很多都提到了BeanUtils(org.springframework.beans) 利用反射性能比较差。大家都推荐使用 MapStruct。因为这个组件使用 Java 原…

zookeeper 应该这样学

ZooKeeper 是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是 Google 的 Chubby 一个开源的实现&#xff0c;是 Hadoop 和 Hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件&#xff0c;提供的功能包括&#xff1a;配置维护、域名服务、分…

C# 使用 MailKit 接收邮件(附demo)

C# 使用 MailKit 接收邮件&#xff08;附demo&#xff09; 介绍安装包&#xff08;依赖&#xff09;案例简单代码 获取附件核心代码完整代码 介绍一下POP3 介绍 MailKit 是一个开源的 C# 邮件处理库&#xff0c;用于在应用程序中发送和接收电子邮件。它提供了一个强大且易于使…

Redis核心技术与实战【学习笔记】 - 6.Redis 的统计操作处理

1.前言 在 Web 业务场景中&#xff0c;我们经常保存这样一种信息&#xff1a;一个 key 对应了一个数据集合。比如&#xff1a; 手机 APP 中的每天用户登录信息&#xff1a;一天对应一系列用户 ID。电商网站上商品的用户评论列表&#xff1a;一个商品对应了一些列的评论。用户…

【云原生之kubernetes系列】--污点与容忍

污点与容忍 污点&#xff08;taints)&#xff1a;用于node节点排斥Pod调度&#xff0c;与亲和效果相反&#xff0c;即taint的node排斥Pod的创建容忍&#xff08;toleration)&#xff1a;用于Pod容忍Node节点的污点信息&#xff0c;即node节点有污点&#xff0c;也将新的pod创建…