亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

Arduino 串口通信完全指南:UART 基础、RS232 兼容与实战代码

Arduino 串口通信:UART 原理、RS232 电平转换与编程实战

串行通信背景

早期并行通信需 8 根数据线,远距离信号失真、成本高。串行协议仅用 3 线(TX、RX、GND)传输 8 位数据:发送端并入串出移位寄存器,接收端串入并出还原。两种模式:同步(块传输)与异步(字节传输),异步模式最常用。

Arduino 串口通信完全指南:UART 基础、RS232 兼容与实战代码

三种通信模式:单工(仅发)、半双工(收发分时)、全双工(同时收发)。

RS232 标准与 TTL 电平转换

RS232 早于 TTL 制定:逻辑 1 = -3~-25V,逻辑 0 = +3~+25V。接 TTL(0/5V 或 0/3.3V)需电平转换,经典芯片 MAX232。Arduino 内置 USB-UART 桥接,直接兼容 TTL 电平与 PC 虚拟串口,免外置 MAX232。

Arduino 串口核心 API

函数作用典型调用
Serial.begin(baud)初始化波特率(常用 9600)Serial.begin(9600); 在 setup() 中
Serial.available()检查接收缓冲区字节数返回 0 无数据,>0 有数据
Serial.read()读取 1 字节(返回 int,-1 表示空)发送字符 '1' 读得 ASCII 码 49
Serial.println(val)发送数据 + 换行符调试输出、上位机显示
Serial.flush()清空发送缓冲区(等待发送完成)关键数据发送后调用
Serial.print(val)发送数据不换行格式化输出
Serial.write(byte)发送原始字节二进制协议

实战:PC 串口监视器收发演示

void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    char cmd = Serial.read();
    if (cmd == '1') {
      digitalWrite(13, HIGH);
      Serial.println("LED ON");
    } else if (cmd == '0') {
      digitalWrite(13, LOW);
      Serial.println("LED OFF");
    }
  }
}
Arduino 串口通信完全指南:UART 基础、RS232 兼容与实战代码

上传后打开 IDE “串口监视器”,波特率设 9600,发送 '1'/'0' 控制板载 LED 并回显状态。自行修改体会收发流程。

常见坑与技巧

延伸阅读

工业技术

  1. Arduino 与树莓派 2 I2C 通信集成:打造物联网传感器项目的最佳搭档
  2. 基于 Infineon 3D 磁传感器的 Arduino 无线磁通讯实验
  3. 基于 1Sheeld 与 Arduino 的盲聋人士沟通辅助系统
  4. Arduino + DHT11 + 以太网盾板温湿度数据记录仪
  5. Arduino UNO + WiFi 盾板:串口实时推送温度到网页绘图
  6. Python 3 控制 Arduino UNO - 串口通信点亮内置 LED 入门教程
  7. 理解数据流:从单工到全双工通信
  8. 光数据通信:利用光实现高带宽、无干扰传输
  9. 理解网络协议:从物理层到高级仲裁
  10. 微处理器:存储程序计算的演进
  11. MQTT 与 DDS:为物联网选择正确的 M2M 协议
  12. 工业物联网通信:6大成熟基础设施协议深度对比