嵌入式开发学习日志36——stm32之USART串口通信前述

stm32还有额外的串口通信功能,只不过在介绍串口通信前,考虑到各位读者术业有专攻,可能对通信的知识并不是十分熟悉,得先来讲解一下通信的基本概念。

通信,讲得简单点,就是人和人进行交流,不过需要通过发送接收设备以及相对应的通道来进行。

通信的方式多种多样,按照数据传送方式来分,就可以分为串口通信以及并行通讯;按照通信的同步方式进行划分,可以分为异步以及同步通信;按照数据的传输方向分,还能分为单工通信、半双工通信以及全双工通信。

所谓串行通信,是用一根数据线,将数据一位一位地依次传输,每个数据都会占据固定的时间长度。这种通信的好处显而易见,传输线少,长距离传输时成本就比较低,并且可以借助现有的设备进行,但是因为要处理每一位数据,数据传送的控制会比较复杂。

并行通信与串口通信相反,它是可以通过多条线路同时传输数据,并且数据可以多位传输。相较于串口通信,并行通信的信息传输速率更快,控制起来更简单,但是由于用到的数据线较多,所以成本较高,同时很难控制接收方同时接收数据,传输时的抗干扰能力也不强。

异步通信是接发双方按照各自的时间系统进行数据的接收以及发送,虽然发送方和接收方的时钟可以尽量保持一致,但是并不强求。异步通信以字符构成帧为单位进行数据传输,每个字符会附加2~3位起止位,字符与字符之间会有任意的时间间隔,因此传输效率并不高。

同步通信并不是双方按照各自的时钟强制保持相同,而是由发送方直接对接收方的时钟进行控制,进而保证时间上的同步。此时,传输的字符之间就并不会再有间隔,以此来保证位同步关系。

至于剩下三个通信方式就比较简单。

单工通信就是数据只沿着一个方向进行传输,由发送方到接收方,而不能进行反向操作,限制十分明显。

半双工通信可以实现数据的双向传输,但是这个双向传输仍然有限制,不能同时进行,发送方到接收方传输时,接收方就无法向发送方进行数据传输。

全双工通信更加全面,可以实现数据的同步双向传输,不过,成本会比较高。

相关推荐
Zw-awa8 小时前
先让程序开口说话:为什么把人机交互放在最前面
stm32
Zwawa8 小时前
把按键和 LED 状态显示出来:第一次看见程序到底在干什么
单片机·嵌入式
Zw-awa8 小时前
把按键和 LED 状态显示出来:第一次看见程序到底在干什么
stm32
Zw-awa8 小时前
面包板接线为什么这样接:从模块需求到芯片资源分配
stm32
小程序设计8 小时前
基于STM32的办公室智能空气净化系统设计
stm32·单片机
Zw-awa9 小时前
用 OLED 给 STM32 做实时调试面板
stm32
Zw-awa9 小时前
按键为什么会乱跳:一次按下为什么变成很多次
stm32
一隅论数智6 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
不悔哥6 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式