You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过代码获取Arduino当前所连接的串行COM端口号

Arduino端无法直接读取自身连接的上位机COM端口号的说明与替代方案

COM端口号是Windows、macOS、Linux等上位机操作系统为接入的USB串行设备分配的本地标识,该编号仅存储在上位机系统中,不会通过串行总线下发到Arduino设备侧,因此Arduino本身没有能力直接通过自身代码读取到对应的COM端口号。

适配Java+Arduino场景的实现方案

你可以利用已经打通的串行通信链路,由Java端主动把当前使用的端口号发送给Arduino侧,流程如下:

  • 第一步:Java端打开COM端口建立连接后,立即向Arduino发送一条带标识的指令,比如 PORT:COM3\n,把当前占用的端口号传递过去
  • 第二步:Arduino侧编写串行口监听逻辑,解析收到的指令,提取端口号存储到本地变量即可使用

Arduino侧参考代码:

String comPort = ""; // 存储上位机发送过来的COM端口号

void setup() {
  Serial.begin(9600); // 波特率要和Java端配置保持一致
}

void loop() {
  if (Serial.available() > 0) {
    String input = Serial.readStringUntil('\n');
    input.trim();
    // 匹配端口号指令前缀
    if (input.startsWith("PORT:")) {
      comPort = input.substring(5);
      // 测试回传逻辑,可根据业务需求调整
      Serial.print("Received COM port: ");
      Serial.println(comPort);
    }
    // 此处添加原有其他串行指令的处理逻辑
  }

  // 此处添加其他业务逻辑
}

补充说明

  • 如果你的Arduino设备会固定连接到同一台上位机,也可以直接在Arduino代码里硬编码对应的COM端口号,不需要动态传递
  • 不同上位机给同一台Arduino分配的COM端口号可能不同,动态传递方案适配多设备、多上位机的场景更灵活

内容的提问来源于stack exchange,提问作者Arcaniaco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:24:04