什么是串口通讯?STM32中的串口通讯接口有哪些

发布者:EnchantedBreeze最新更新时间:2024-04-16 来源: elecfans关键字:串口通讯  STM3 手机看文章 扫描二维码
随时随地手机看文章

所谓通信就是两种设备之间进行数据交互,从而传递大料的信息,因为通讯的存在,使得大量的数据有了传输通道,各种信息得到了汇总,方便了人们的生活 。MCU系统间常见的通讯方式有:RS232、RS422、RS485、LIN Bus、Bluetooth、Ethernte、wifi等,而大多数的通信接口都可以通过串口来扩展,所以对于单片机系统而言,只要掌握了串口,就掌握了大多数的通信方式,所以今天给大家介绍串口通信。    


什么是串口通讯

串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式。尽管串行通讯的比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。

典型的串口通信使用3根线完成,分别是地线、发送、接收。由于串口通信是异步的,所以端口能够在一根线上发送数据同时在另一根线上接收数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶的校验。对于两个需要进行串口通信的端口,这些参数必须匹配,这也是能够实现串口通讯的前提。

a9a3e7a4-a929-11ed-bfe3-dac502259ad0.jpg?imageView2/2/w/1000

串行通讯示数据传输意图

串口通讯的通讯协议?

最初数据是模拟信号输出简单过程量,后来仪表接口出现了RS232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现联网功能,这就促生了RS485。

我们知道串口通信的数据传输都是0和1,在单总线、I2C、UART中都是通过一根线的高低电平来判断逻辑1或者逻辑0,但这种信号线的GND再与其他设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。所以差分通信、支持多机通信、抗干扰强的RS485就被广泛的使用了。

RS485通信最大特点就是传输速度可以达到10Mb/s以上,传输距离可以达到3000米左右。大家需要注意的是虽然485最大速度和最大传输距离都很大,但是传输的速度是会随距离的增加而变慢的,所以两者是不可以兼得的。

串口通讯的物理层

串口通讯的物理层有很多标准,例如上面提到的,我们主要讲解RS-232标准,RS-232标准主要规定了信号的用途、通讯接口以及信号的电平标准。

a9bf0b88-a929-11ed-bfe3-dac502259ad0.png?imageView2/2/w/1000

在上面的通讯方式中,两个通讯设备的'DB9接口'之间通过串口信号线建立起连接,串口信号线中使用'RS-232标准'传输数据信号。由于RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个'电平转换芯片'转换成控制器能识别的'TTL校准'的电平信号,才能实现通讯。

下图为DB9标准串口通讯接口:

a9e1a26a-a929-11ed-bfe3-dac502259ad0.jpg?imageView2/2/w/1000

DB9引脚说明:

aa343764-a929-11ed-bfe3-dac502259ad0.png?imageView2/2/w/1000

上表中的是计算机端的DB9公头标准接法,由于两个通讯设备之间的收发信号(RXD与TXD)应交叉相连,所以调制调解器端的DB9母头的收发信号接法一般与公头的相反,两个设备之间连接时,只要使用'直通型'的串口线连接起来即可。

aa535798-a929-11ed-bfe3-dac502259ad0.jpg?imageView2/2/w/1000

串口线中的RTS、CTS、DSR、DTR及DCD信号,使用逻辑 1表示信号有效,逻辑0表示信号无效。例如,当计算机端控制DTR信号线表示为逻辑1时,它是为了告知远端的调制调解器,本机已准备好接收数据,0则表示还没准备就绪。

波特率

波特率是指数据信号对载波的调制速率,它用单位时间内载波调制状态改变的次数来表示;

aa6715b2-a929-11ed-bfe3-dac502259ad0.jpg?imageView2/2/w/1000

比如波特率为9600bps;代表的就是每秒中传输9600bit,也就是相当于每一秒中划分成了9600等份。

因此,那么每1bit的时间就是1/9600秒=104.1666...us。约0.1ms。既然是9600等份,即每1bit紧接着下一个比特,不存在额外的间隔。两台设备要想实现串口通讯,这收发端设置的波特率必须相同,否则是没办法实现通讯的。

收发波特率一致可以实现通讯:

aa7f8e12-a929-11ed-bfe3-dac502259ad0.gif?imageView2/2/w/1000

收发波特率不一致,导致RX端不能正常接收:

aa94c5ac-a929-11ed-bfe3-dac502259ad0.gif?imageView2/2/w/1000

串口通讯的数据结构

aaa86b66-a929-11ed-bfe3-dac502259ad0.png?imageView2/2/w/1000

起始位: 起始位必须是持续一个比特时间的逻辑0电平,标志传输一个字符的开始,接收方可用起始位使自己的接收时钟与发送方的数据同步。

数据位: 数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定。传输数据时先传送字符的低位,后传送字符的高位。

奇偶校验位: 奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。

停止位: 停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是逻辑1电平,标志着传输一个字符的结束。

空闲位: 空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平来填充。

单双工通讯

单工: 数据传输只支持数据在一个方向上传输;

半双工: 允许数据在两个方向上传输,但某一时刻只允许数据在一个方向上传输,实际上是一种切换方向的单工通信,不需要独立的接收端和发送端,两者可合并为一个端口;

全双工: 允许数据同时在两个方向上传输,因此全双工通信是两个单工方式的结合,需要独立的接收端和发送端。

aab7f86a-a929-11ed-bfe3-dac502259ad0.png?imageView2/2/w/1000

STM32中的串口通讯

STM32串口通信接口有两种,分别是:UART(通用异步收发器)、USART(通用同步异步收发器),对于大容量STM32F10x系列芯片,分别由3个USART和两个UART。

aad3bb72-a929-11ed-bfe3-dac502259ad0.jpg?imageView2/2/w/1000

TXD:数据发送引脚;RXD:数据输入引脚

对于两芯片的间的连接,两个芯片GND共地,同时TXD和RXD交叉连接,这样两个芯片间可进行TTL电平通信。

但如果对于芯片和PC机相连,除了共地条件外,不能使用如上的直接交叉连接,虽然两者都有TXD和RXD引脚,但通常PC机使用的是RS232接口(9针),通常是TXC和RXD经过电平转换得到,故如果要使芯片与PC机的RS232接口直接通信,需要将芯片的输入输出端口也电平转换为RS232类型,再交叉连接,二者的电平标准不同:

单片机的点评标准(TTL电平):+5V表示1,0V表示0;

RS232电平标准:+15/+13V表示0,-15/-13表示1。

a9bf0b88-a929-11ed-bfe3-dac502259ad0.png?imageView2/2/w/1000

因此单片机与PC机进行串口通信应该遵循:在单片机串口与上位机给出的RS232口之间,通过电平转换电路实现TTL电平与RS232电平间的转换.

如果使用USB转串口也可以实现串口通讯,USB转串口电路图如下所示

ab0b033e-a929-11ed-bfe3-dac502259ad0.png?imageView2/2/w/1000


关键字:串口通讯  STM3 引用地址:什么是串口通讯?STM32中的串口通讯接口有哪些

上一篇:在STM32中实现延时两小时功能的方法
下一篇:STM32入门学习笔记之EEPROM存储实验5

推荐阅读最新更新时间:2026-03-24 05:50

什么是串口通讯?常用PLC基本接口有哪些?
电气作业人员在使用PLC的时候会接触到很多的通讯协议以及通讯接口,最基本的PLC串口通讯和基本的通讯接口你都了解吗? 1,什么是串口通讯? 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。 串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS- 232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 2,串口通讯的使用 串口通讯使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。 串口
[嵌入式]
什么是<font color='red'>串口通讯</font>?常用PLC基本<font color='red'>接口</font>有哪些?
PLC串口通讯和通讯接口知识汇总
在使用PLC的时候会接触到很多的通讯协议以及通讯接口,最基本的PLC串口通讯和基本的通讯接口你都了解吗? 一、什么是串口通讯? 串口是一种接口标准,是计算机上一种非常通用设备通信的协议。它规定了接口的电气标准,没有规定接口插件电缆以及使用的协议。典型的串口通讯标准常见有如下三种。 EIA RS232(通常简称“RS232”): 1962年由美国电子工业协会(EIA)制定。 EIA RS485(通常简称“RS485”): 1983年由美国电子工业协会(EIA)制定。 EIA RS422(通常简称“RS485”): 1924年由美国电子工业协会(EIA)制定。 二、串口通讯的使用 串口通讯使用3根线完成:地线;发送;接收。由于
[嵌入式]
PLC<font color='red'>串口通讯</font>和通讯<font color='red'>接口</font>知识汇总
STM32CubeMX系列 | 串口通讯
1. 串口简介 在串行通信中,一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束。在进行传输之前,双方一定要使用相同的波特率设置。波特率就是每秒钟传输的数据位数。常用的两种基本串行通信方式包括同步通信和异步通信。我们通常使用的是异步通信,异步通信规定传输的数据格式由起始位(start bit)、数据位(data bit)、奇偶校验位(parity bit)和停止位(stop bit)组成。串口通讯有HAL 库轮询,中断,DMA 三种通信模式: 轮询方式:CPU不断查询IO设备,如设备有请求则加以处理。例如CPU不断查询串口是否传输完成,如传输超过则返回超时错误。轮询方式会
[单片机]
#C51串口通讯3-#一串数据#中断即时解析用户自定义协议
前言 1.上一章(中断定时+超时接收)的逻辑,适用于协议较为复杂的情况,即中断判断接收结束,数据放置缓冲区,主函数中解析数据。 2.实际开发中,用户自定义协议的帧头是可预见的,包括数据长度等。 3.本章测试使用中断即时解析自定义协议 提示:以下是本篇文章正文内容,下面案例可供参考 一、场景 示例一串数据:固定帧头区(AA 66 AA )+数据类型(01/02)+数据区+和校验+异或校验 其中,01LED,02蜂鸣器 ,数据区为工作时间,低位在前高位在后 二、编程实现 1.知识点 a.“状态机”的算法思想 状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型。 包括:State(状态)、Event(事件)、
[单片机]
#C51<font color='red'>串口通讯</font>3-#一串数据#中断即时解析用户自定义协议
#C51串口通讯4-#一串数据#中断即时解析用户自定义协议(握手接收应答)
前言 提示: 1.上一章测试一种方法:简单协议下利用串口中断实时接收数据并校验后进行解析。 2.实际项目开发时,主机下发命令后,从机首先进行握手确认,数据错误情况下要进行相应回应(如错误指令)。 3.本章继续丰富开发,增加主从应答机制 提示:以下是本篇文章正文内容,下面案例可供参考 一、场景 示例: 主机下发命令,从机中断解析并应答,主函数处理事件 二、编程实现 1.自定义协议 如: ##主机类型定义命令类型(查询,设置,器件控制等等) 以控制数码管显示0x01为例 ##从机握手应答: a.数据正确回复:BB66BB8000 b.和校验错误回复:BB66BB8100 c.异或校验错误回复:BB66BB820
[单片机]
#C51<font color='red'>串口通讯</font>4-#一串数据#中断即时解析用户自定义协议(握手接收应答)
西门子PLC串口通讯方法
1、RS485 串口通信 第三方设备大部分支持,西门子S7 plc 可以通过选择自由口通信模式控制串口通信。最简单的情况只用发送指令 (XMT )向打印机或者变频器等第三方设备发送信息。不管任何情况,都必须通过 S7 PLC 编写程序实现。当选择了自由口模式,用户可以通过发送指令(XMT )、接收指(RCV)、发送中断、接收中断来控制通信口的操作。 2、PPI 通信 PPI 协议是S7-200CPU 最基本的通信方式,通过原来自身的端口 (PORT0 或 PORT1)就可以实现通信,是 S7-200 CPU 默认的通信方式。PPI 是一种主-从协议通信,主-从站在一个令牌环网中。在CPU内用户网络读写指令即可,也就是说网络读写
[嵌入式]
51单片机实现常用的自定义串口通讯协议
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: USART ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200711 ---- @ModifiedTime: 20200711 ----
[单片机]
51单片机实现常用的自定义<font color='red'>串口通讯</font>协议
STM32 串口通讯 发送 接收
STM32的使用有利有弊,种类多---但是种类有太多,资料也是比较乱的,还有就是库的调用,经常忘记一些函数的使用------比如最常用的串口------ ------------------------------------------------------------------------------USART ----设置------------------------------- void USART1_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure;
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved