news 2026/5/1 20:07:39

【通讯协议】串口通讯USARTUART:参数、外围电路及实战连接

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【通讯协议】串口通讯USARTUART:参数、外围电路及实战连接

在嵌入式开发中,UART和USART是最常用的串行通讯方式,无论是单片机调试、模块交互(蓝牙、GPS),还是工业设备通信,都能看到它们的身影。很多新手容易混淆二者的区别,不清楚外围电路如何连接,也对通讯参数的配置感到困惑。本文将从基础概念、核心区别、通讯参数、外围电路连接四个维度,结合实操细节,帮大家彻底搞懂UART与USART通讯,适合嵌入式新手入门和进阶参考。

一、先厘清概念:UART与USART到底是什么?
首先明确两个核心定义,避免从根源上混淆,二者的本质都是串行通讯外设,核心差异在于对“同步通信”的支持能力,简单来说:USART = UART + 同步通信功能,异步模式下二者完全兼容。

1.1 UART:通用异步收发器(Universal Asynchronous Receiver Transmitter)
UART是纯粹的异步串行通讯外设,核心特点是“无时钟同步”,通信双方无需共用时钟线,仅通过预设的通讯参数保证数据传输的同步性。它的硬件结构简单,资源占用少,是嵌入式开发中最基础、最常用的通讯方式,常见于51单片机、低端MCU等设备中。
核心功能:仅支持异步全双工通讯,可实现数据的双向传输(发送和接收独立),无需时钟信号,依赖数据帧中的起始位、停止位实现帧同步,通过波特率保证传输节奏一致。

1.2 USART:通用同步异步收发器(Universal Synchronous Asynchronous Receiver Transmitter)
USART是UART的超集,它在UART的基础上,增加了同步通讯功能,同时兼容UART的所有异步通讯场景。现代主流MCU(如STM32、GD32)集成的大多是USART模块,可通过配置寄存器切换同步/异步模式,灵活性更高。
核心功能:既支持异步通讯(与UART完全一致),也支持同步通讯(需额外时钟线);还可扩展硬件流控、智能卡模式、LIN总线等功能,适用于对通讯灵活性和可靠性要求较高的场景。

1.3 二者核心区别(一张表看懂)

补充说明:实际开发中,我们常说的“串口通讯”,大多是指UART模式(异步),即便用的是USART模块,也通常配置为异步模式,兼容UART设备。

二、核心通讯参数:决定通讯是否稳定(UART/USART通用)
无论是UART还是USART(异步模式),通讯双方必须配置完全一致的参数,否则会出现数据乱码、丢失等问题。核心参数有5个,重点掌握波特率、数据位、校验位、停止位,流控位根据需求选择。

2.1 波特率(Baud Rate)
波特率是通讯的“速度”,指每秒传输的二进制位数(单位:bps),表示通讯双方的数据传输节奏。波特率越高,传输速度越快,但对硬件稳定性和抗干扰能力要求越高,且时钟偏差需控制在3%以内,否则易出错。
常用波特率(必记):

  • 9600 bps:最常用,稳定性最高,适合大多数场景(如传感器数据传输、调试信息输出);
  • 19200 / 38400 bps:中等速度,适用于对传输速度有一定要求的场景;
  • 115200 bps:高速,适用于大量数据传输(如日志输出、文件传输);
  • 其他:4800、57600、230400等,根据设备手册和需求选择。
    注意:通讯双方的波特率必须严格一致,哪怕有微小偏差(如9600和19200),都会导致数据乱码。

2.2 数据位(Data Bits)
数据位是每帧数据中“有效数据”的位数,即实际要传输的字节长度,可配置为5~9位,最常用的是8位(对应1个字节),几乎所有嵌入式设备的默认配置都是8位数据位。

  • 5位:早期低速设备使用,现在几乎不用;
  • 8位:主流配置(如STM32、蓝牙模块、GPS模块),对应uint8_t类型数据;
  • 9位:用于需要额外校验或扩展地址的场景(如多机通讯)。

2.3 校验位(Parity Bit)
校验位是用于“检测数据传输错误”的辅助位,通过对数据位的逻辑运算,判断传输过程中是否出现数据丢失、误码,分为3种类型,可根据可靠性需求选择,也可选择无校验。

  • 无校验(None):最常用,不添加校验位,节省传输时间,适用于干扰小、短距离的场景(如调试、室内传感器);
  • 奇校验(Odd):数据位中1的个数 + 校验位 = 奇数,接收方校验时,若不符合则判定为误码;
  • 偶校验(Even):数据位中1的个数 + 校验位 = 偶数,与奇校验逻辑相反,可靠性略高于奇校验。
    补充:校验位仅能检测错误,无法纠正错误,若需纠错,需额外添加协议(如CRC校验)。

2.4 停止位(Stop Bits)
停止位是每帧数据的“结束标志”,用于告知接收方“一帧数据已传输完成”,可配置为1位、1.5位、2位,最常用的是1位停止位。

  • 1位:主流配置,兼顾速度和稳定性;
  • 2位:适用于干扰较大、传输距离较远的场景(如工业现场),容错率更高;
  • 1.5位:仅用于早期RS-232设备,现在几乎不用。

2.5 流控位(Flow Control)
流控位用于“控制数据传输节奏”,防止因接收方缓冲区满,导致数据丢失,仅USART支持硬件流控(UART无此功能),分为硬件流控和软件流控,实际开发中很少使用,仅在高速、大量数据传输时考虑。

  • 硬件流控:需额外增加2根线(RTS:请求发送,CTS:清除发送),RTS表示本设备准备好接收数据,CTS表示检测对方准备好接收;
  • 软件流控:无需额外接线,通过特定字符(如XON、XOFF)控制传输,效率低,几乎不用。
    常用参数组合(必记实操配置)
    实际开发中,最常用的参数组合为:波特率115200、8位数据位、无校验、1位停止位、无流控(简称“115200 8N1”),其次是“9600 8N1”,适用于绝大多数场景(调试、模块交互)。
    三、外围电路连接:UART与USART实操接线(核心重点)
    外围电路连接的核心原则:TX与RX交叉连接、共地、电平匹配,USART同步模式需额外连接时钟线,下面分场景详细讲解,结合实际开发中的常见案例(如MCU与PC、MCU与蓝牙模块)。

3.1 核心接线原则(必记)

  1. TX与RX交叉:发送端(TX)接接收端(RX),接收端(RX)接发送端(TX),不能直连(直连会导致数据无法传输);
  2. 共地:所有通讯设备必须共地(GND相连),否则会出现电平漂移,导致数据乱码、传输失败;
  3. 电平匹配:通讯双方的TX/RX引脚电平必须一致(如3.3V与3.3V、5V与5V),若电平不匹配,需添加电平转换电路。

3.2 UART外围电路连接(最常用场景)
UART仅需2根信号线(TX、RX)+ 共地(GND),无需时钟线和流控线,以下是3个最常见的实操场景。

场景1:MCU(如STM32)与PC通讯(调试场景)
PC本身没有UART接口,需通过“USB转UART模块”(如CH340、PL2303)实现电平转换,将USB信号转为UART的TTL电平(3.3V/5V),接线步骤如下:

  • USB转UART模块 → STM32(UART/USART异步模式);
  • TXD(模块) → RXD(STM32,如PA10);
  • RXD(模块) → TXD(STM32,如PA9);
  • GND(模块) → GND(STM32);
  • VCC(模块):根据模块要求接5V或3.3V(无需与STM32共VCC,仅共GND即可)。
    注意:USB转UART模块需安装驱动(CH340驱动、PL2303驱动),安装完成后,PC设备管理器中会出现对应的串口(如COM3),即可通过串口助手(SecureCRT、SSCOM)与MCU通讯。

场景2:MCU与蓝牙模块(如HC-05)通讯
蓝牙模块(HC-05、HC-06)的通讯接口为UART,电平通常为3.3V,与STM32(3.3V)直接对接,无需电平转换,接线如下:

  • 蓝牙模块 → STM32;
  • TXD(蓝牙) → RXD(STM32);
  • RXD(蓝牙) → TXD(STM32);
  • GND(蓝牙) → GND(STM32);
  • VCC(蓝牙):接3.3V(注意:部分蓝牙模块支持5V,需看模块手册)。
    用途:通过蓝牙模块将MCU的数据传输到手机(如温湿度数据、传感器数据),或通过手机控制MCU。

场景3:两个MCU之间的UART通讯(如STM32与51单片机)
若两个MCU的UART电平一致(如都是3.3V或都是5V),直接交叉接线+共地即可;若电平不一致(如STM32 3.3V与51单片机5V),需添加电平转换电路(如SN74LS245),避免损坏引脚。

  • 电平一致(3.3V ↔ 3.3V):MCU1_TX → MCU2_RX、MCU1_RX → MCU2_TX、MCU1_GND → MCU2_GND;
  • 电平不一致(3.3V ↔ 5V):在TX/RX之间串联SN74LS245,实现3.3V与5V的双向转换,同时共地。

3.3 USART外围电路连接(同步/异步模式)
USART有两种工作模式,异步模式与UART接线完全一致,同步模式需额外添加时钟线(SCLK),以下重点讲解同步模式的接线。

场景:STM32(USART同步模式)与SPI传感器通讯
USART同步模式可模拟SPI通讯,此时需用到3根线(TX、RX、SCLK),其中SCLK为时钟线,由主设备(如STM32)提供,从设备(如传感器)根据时钟信号采样数据,接线如下:

  • 主设备(STM32) → 从设备(传感器);
  • TXD(主) → MOSI(从,数据发送);
  • RXD(主) → MISO(从,数据接收);
  • SCLK(主) → SCLK(从,时钟信号);
  • GND(主) → GND(从);
  • 若需硬件流控:RTS(主) → CTS(从)、CTS(主) → RTS(从)(可选)。
    注意:USART同步模式下,时钟信号由主设备生成,从设备被动跟随,时钟极性(高/低电平)和时钟相位(上升沿/下降沿采样)需与从设备一致,否则会出现数据错误。

3.4 电平转换电路(关键细节)
实际开发中,常遇到电平不匹配的场景(如3.3V MCU与5V设备、TTL电平与RS-232电平),此时必须添加电平转换电路,否则会损坏引脚或导致通讯失败,常见两种转换方式:

  1. TTL电平(3.3V/5V)之间转换:使用SN74LS245、TXS0108等芯片,支持双向转换,适合MCU之间、MCU与模块之间的电平匹配;
  2. TTL电平与RS-232电平转换:使用MAX232芯片,将MCU的TTL电平(3.3V/5V)转换为RS-232电平(-15V~+15V),适合MCU与PC的RS-232接口(老式台式机)通讯。
    四、实操注意事项(避坑重点)
    很多新手接线后出现数据乱码、传输失败,大多是忽略了以下细节,建议收藏:
  3. 接线错误:TX与RX未交叉、未共地,是最常见的错误,一定要牢记“TX接RX、RX接TX、共地”;
  4. 电平不匹配:3.3V引脚接5V TX,会烧毁MCU引脚,若不确定电平,先查设备手册,必要时添加电平转换电路;
  5. 参数不一致:通讯双方的波特率、数据位、校验位、停止位必须完全一致,哪怕一个参数不同,都会乱码;
  6. 干扰问题:传输距离过远(超过10米)、周围有强干扰(如电机、继电器),会导致数据丢失,可添加屏蔽线、增加上拉电阻(10KΩ);
  7. USART模式配置:若使用USART的同步模式,需确保时钟极性、相位与从设备一致,否则无法同步数据;
  8. 驱动安装:USB转UART模块需安装对应驱动,否则PC无法识别串口。

五、总结

  1. UART与USART的核心区别:USART支持同步+异步通讯,UART仅支持异步通讯,异步模式下二者完全兼容,现代MCU多集成USART,可灵活配置;
  2. 通讯参数:重点掌握“波特率、数据位、校验位、停止位”,常用配置为115200 8N1,通讯双方必须一致;
  3. 外围电路:核心是“TX/RX交叉、共地、电平匹配”,UART需2根线,USART同步模式需额外添加时钟线;
  4. 实操避坑:避免接线错误、电平不匹配、参数不一致,干扰场景需添加屏蔽措施。

掌握以上内容,就能应对绝大多数UART/USART通讯场景(调试、模块交互、工业控制)。如果在实操中遇到问题,可在评论区留言,一起交流排查!
最后,收藏本文,后续开发中遇到UART/USART相关问题,可快速查阅参数和接线方法~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 19:56:11

终极指南:解锁ComfyUI ControlNet图像控制新维度

终极指南:解锁ComfyUI ControlNet图像控制新维度 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux ComfyUI ControlNet辅助预处理器插件是AI图像…

作者头像 李华
网站建设 2026/5/1 19:55:38

DART框架:异步强化学习提升GUI自动化效率

1. DART框架概述:当GUI自动化遇上异步强化学习 在自动化测试和机器人流程自动化(RPA)领域,GUI代理的训练效率一直是制约大规模应用的瓶颈。传统同步训练方法就像单线程操作——智能体必须按部就班地完成每个动作才能获得反馈&…

作者头像 李华
网站建设 2026/5/1 19:55:00

在 OpenClaw Agent 框架中快速接入 Taotoken 作为 OpenAI 兼容提供商

在 OpenClaw Agent 框架中快速接入 Taotoken 作为 OpenAI 兼容提供商 1. 准备工作 在开始配置之前,请确保已安装 OpenClaw 框架并具备基本的开发环境。您需要准备以下信息: Taotoken 平台的有效 API Key(可在控制台创建)目标模…

作者头像 李华
网站建设 2026/5/1 19:52:23

为团队统一开发环境使用Taotoken CLI一键配置密钥

为团队统一开发环境使用Taotoken CLI一键配置密钥 1. 团队开发中的密钥管理痛点 在多人协作的开发项目中,手动配置API密钥与模型端点往往成为效率瓶颈。每位开发者需要单独获取密钥、查找正确的Base URL、并在不同工具链中重复配置。这不仅浪费时间,还…

作者头像 李华