当前位置: 首页 > news >正文

二十八、STM32的USART (介绍)

前言:在嵌入式开发的学习过程中,通信接口是一个无法绕开的核心知识点。无论是调试信息输出,还是传感器、模块与主控芯片之间的数据交互,通信接口都是系统中最基础、最关键的桥梁。
在众多通信方式中,USART(通用同步/异步收发器) 以其结构简单、使用灵活、应用广泛而成为 STM32 系列单片机中最常用的外设之一。它既能以异步方式实现经典的 UART 通信,也能在需要精确时序同步的场景中切换到同步模式。对于初学者而言,USART 不仅是学习 STM32 外设的入门接口,更是理解时序、采样、波特率与通信协议等底层概念的绝佳起点。本文将从接口原理出发,逐步解析 USART 的工作机制、硬件结构、电平标准、通信参数及时序特性,帮助你全面掌握 STM32C8T6 中的串口通信原理。

目录

一、通信接口概述

二、USART 与 UART 的区别

三、USART 硬件结构与引脚

四、电平标准

五、USART 通信参数

六、USART 异步通信时序结构

七、起始位侦测机制

八、数据采样与判定

九、波特率发生器

十、总结


一、通信接口概述

在嵌入式系统中,通信接口用于实现不同设备之间的数据交互。常见通信方式包括:

  • 并行通信:一次传输多个比特,速度快但占用引脚多,布线复杂。

  • 串行通信:一次传输一位数据,速度略慢但引脚占用少,应用最广泛。

STM32C8T6 微控制器提供多种串行通信接口,例如 USART、SPI、I²C、CAN 等。
其中,USART(Universal Synchronous Asynchronous Receiver Transmitter) 是最灵活、最常用的一种,既支持同步通信也支持异步通信,在嵌入式调试、外设通信中被广泛使用。

二、USART 与 UART 的区别

USART 是 UART 的增强版本。

  • UART(Universal Asynchronous Receiver Transmitter):只支持异步通信。

  • USART(Universal Synchronous/Asynchronous Receiver Transmitter):既可异步也可同步。

在大多数应用中,我们使用 USART 的异步模式,这时它的工作方式与 UART 完全一致。
但在需要更高数据同步精度的应用中(例如某些高速传感器或外设通信),可以启用 USART 的同步模式,利用时钟线(CK)协同工作。

三、USART 硬件结构与引脚

在 STM32C8T6 中,每个 USART 模块由发送器(TX)、接收器(RX)、波特率发生器和控制逻辑组成。

常用引脚如下:

  • TX(发送端):输出数据到外设的接收端。

  • RX(接收端):从外设的发送端接收数据。

  • GND(地线):两端电气参考一致。

  • CK(可选):在同步模式下提供时钟信号。

通常我们使用 TX、RX 和 GND 三根线即可完成异步通信。

四、电平标准

USART 通信使用电压信号传输逻辑数据。根据设备类型的不同,常见电平标准如下:

  1. TTL 电平(MCU 通用)

    • 逻辑 1:3.3V(或 5V)

    • 逻辑 0:0V

  2. RS-232 电平(电脑标准串口)

    • 逻辑 1(标记位):-3V ~ -15V

    • 逻辑 0(空闲位):+3V ~ +15V

由于电平不同,STM32 与电脑通信时必须通过电平转换芯片(如 MAX232、CH340、FT232 等)进行接口匹配。

五、USART 通信参数

为了保证通信双方正确理解彼此发送的数据,需要提前约定一组通信参数:

发送端与接收端的参数必须完全一致,否则会导致通信错误。

六、USART 异步通信时序结构

USART 异步通信的数据帧一般由以下部分组成:

空闲状态(高电平) → 起始位(低电平) → 数据位(D0~D7) → 校验位(可选) → 停止位(高电平)

  • 空闲状态:总线为高电平,表示无数据传输。

  • 起始位:低电平信号,通知接收端准备接收。

  • 数据位:通常为 8 位,按从低位到高位发送。

  • 校验位:可用于检测单比特错误。

  • 停止位:高电平,表示数据帧结束。

七、起始位侦测机制

当总线处于空闲状态时,接收端持续检测 RX 引脚。
一旦检测到由高电平转为低电平的跳变,就认为起始位到达。

为了提高判定准确度,硬件会等待 1.5 个比特时间后进行第一次采样,确保采样点位于数据比特的中间。

八、数据采样与判定

USART 模块通常使用 16 倍过采样 机制:

  • 在一个比特周期内采样 16 次;

  • 通过统计中点附近的多个采样结果,判定该比特是逻辑 0 还是逻辑 1;

  • 这种方式可以有效抵抗抖动与波特率误差。

九、波特率发生器

波特率(Baud Rate)是数据传输的时间基准,决定了每秒传输的比特数。

STM32 内部的 USART 波特率由系统时钟通过分频器生成,计算公式如下:

其中:

  • f_clk 是外设时钟频率;

  • USARTDIV 是寄存器中的分频系数。

例如,当时钟频率为 72MHz,波特率设置为 115200bps 时:

当发送端与接收端波特率误差小于约 ±2% 时,通信即可稳定工作。

十、总结

USART 是 STM32C8T6 中最常用、最灵活的通信接口之一。
它具备以下特点:

  • 可支持异步与同步两种模式;

  • 通信结构简单,仅需两根线即可完成数据传输;

  • 内部提供完善的采样与波特率控制机制,通信稳定可靠;

  • 广泛应用于调试信息输出、传感器通信、模块连接(GPS、蓝牙、Wi-Fi)等场景。

理解 USART 的工作原理、时序结构以及波特率生成机制,是深入掌握 STM32 通信外设的基础。

http://www.dtcms.com/a/602117.html

相关文章:

  • 双滦区seo整站排名seo在网站制作
  • 关于网站维护的书籍建设网站的技术性背景
  • 现代CPU性能分析与优化
  • 悬浮提词器免费版哪个好用?功能测评与实用应用场景
  • 使用OpenGL实现Gouraud材质
  • 2025年数据中心不间断电源(UPS)市场报告:趋势、挑战与投资战略全景分析
  • 网站建设开标书哪家公司
  • 【前端面试】CSS篇
  • 第六章,主从服务器
  • 16.udp_socket(三)
  • 【Git Merge branch】Git 合并提交(Merge Commit)的成因与清理:从本地修复到安全重写历史
  • 视觉学习篇——理清机器学习:分类、流程与技术家族的关系
  • 个人 网站备案 幕布wordpress黑群
  • 机器学习日报17
  • 沛县网站建设wordpress 标签 标题
  • 数字孪生IOC:让数据中心运维从“被动响应”到“主动预警”的智能革命
  • 长春作网站建设的公司wordpress上传到服务器发布
  • 炭黑仪:高精度材料分析的关键工具
  • C++条件判断与循环(一)(算法竞赛)
  • 电商网站维护网络销售是什么样的工作
  • 怎么给网站添加图标网页浏览器cookie
  • 贵州安顺建设主管部门网站信息可视化网站
  • 【计算几何 | 那忘算 11】旋转卡壳(附详细证明)
  • 动作识别3——mmpose和mmaction2
  • 潍坊做网站优化网站设计项目
  • 2025企业可观测平台选型指南:聚焦核心能力,构建面向未来的观测体系
  • 郑州网站建设最低价鼓楼徐州网站开发
  • java开源Socket.io服务器端长链接通信解决方案
  • 牛客2025秋季算法编程训练联赛4-基础组
  • 视频类网站怎么做软件开发专业技能