UART 和 USB 的区别

UART与USB的区别及应用

本人是初学者,非常愿意与大家交流。

想象一下,UART 和 USB 就像两种不同的“对话方式”:

特性UART(老式对讲机)USB(智能电话)
通信方式两根线直接聊天(TX发,RX收)四根线智能对话(D+/D-数据线+电源+地线)
速度慢速(常见9600-115200比特/秒)极快(USB2.0可达480M比特/秒)
协议复杂度简单(只需约定语速“波特率”)复杂(需遵守严格通信规则,自动协商)
连接对象一对一聊天一对多聊天(支持Hub扩展)
供电能力不供电(纯数据)可供电(5V/500mA)
典型场景单片机与传感器、模块间通信电脑与外设(鼠标、U盘、开发板)连接

ESP32 的 Arduino 示例(UART 和 USB 联合作战)

场景描述

用 ESP32 同时演示 UART 和 USB 的功能:

  1. USB 接收电脑发送的消息

  2. UART 将消息转发给另一个设备(这里模拟自发自收)

  3. UART 收到消息后通过 USB 回传给电脑

引脚说明(UART 自发自收测试)
ESP32 引脚说明:
  UART1:TX = GPIO12, RX = GPIO13
  用杜邦线短接 GPIO12 和 GPIO13(让UART1自己发给自己)
代码实现
#include <HardwareSerial.h>

// 初始化硬件串口 UART1(使用GPIO12/13)
HardwareSerial MySerial(1); 

void setup() {
  // USB串口(用于和电脑通信)
  Serial.begin(115200); 
  
  // UART1初始化(波特率115200)
  MySerial.begin(115200, SERIAL_8N1, 13, 12); // RX=13, TX=12
  
  Serial.println("=== UART vs USB 演示 ===");
  Serial.println("输入任意字符,ESP32将通过UART转发并回显!");
}

void loop() {
  // 从USB(电脑)读取数据 → 通过UART1发送
  if (Serial.available()) {
    char usbData = Serial.read();
    MySerial.write(usbData); // 通过UART1发送
    Serial.print("[USB→UART] 发送: ");
    Serial.println(usbData);
  }
  
  // 从UART1读取数据 → 通过USB发回电脑
  if (MySerial.available()) {
    char uartData = MySerial.read();
    Serial.print("[UART→USB] 收到: ");
    Serial.println(uartData);
  }
}
操作步骤
  1. 用 USB线 连接 ESP32 和电脑

  2. 用杜邦线 短接 GPIO12 和 GPIO13(模拟另一个UART设备)

  3. 打开 Arduino 串口监视器(波特率115200)

  4. 发送字母 A → 将看到:

    [USB→UART] 发送: A
    [UART→USB] 收到: A

结论

  1. USB 的便利性
    ESP32 通过 USB 与电脑高速通信(Serial对象),无需额外转换芯片。

  2. UART 的灵活性
    用 HardwareSerial 可创建多组UART(ESP32有3组),连接GPS、传感器等模块。

  3. 协同工作
    USB 负责“人机交互”,UART 负责“设备间通信”,二者在物联网项目中缺一不可!

💡 趣味类比

  • USB 像顺丰快递(高速可靠,直达电脑)

  • UART 像小区快递柜(短距离传输,连接本地设备)
    ESP32 则是聪明的快递站长,协调两者高效运作!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FightingFreedom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值