首页 > 解决方案 > WINDOWS 上的 WebSerial API - “DOMException:无法打开串行端口。”

问题描述

我正在尝试在 Windows 上使用WebSerial API,因为它在 macOS 上运行良好且没有问题。该设备已插入 Macbook,无需额外操作。当我将设备(USB 到串行适配器)连接到 Windows 机器并使用 Google Chrome 访问我的 Angular 网站时,我收到此错误:

DOMException: 无法打开串口。

当我访问chrome://device-log/我看到这个错误:

[USB][ERROR][17:09:20] 无法从节点连接读取描述符:连接到系统的设备无法运行。(0x1F)

下面是我正在使用的代码,当代码运行 line 时会显示错误await this.scale.open({ baudRate: 9600 });

const VENDOR_ID = 1027;
const PRODUCT_ID = 24577;

...

  let button = document.getElementById('request-device');
    button.addEventListener('click', async () => {
      try {

        this.scale = await navigator.serial.requestPort({
          filters: [{
            usbProductId: PRODUCT_ID,
            usbVendorId: VENDOR_ID
          }]
        });
    
        await this.scale.open({ baudRate: 9600 }); //ERROR HAPPENS HERE

      } catch (error) {
        console.log(error)
      }
    });
  }

对于 Ubuntu,这里有两个类似的问题,但没有给出答案或解决方案。(问题1问题2

标签: angularwindowsgoogle-chromeserial-portusbserial

解决方案


这是一个驱动程序问题。

大多数旧型号的 USB 到串行适配器在 Windows 10 上都存在问题。在尝试了几个驱动程序后,我发现这个解决了我的问题。

它以我不懂的语言链接到 Youtube 视频。但是,这些步骤很容易遵循。下载驱动程序并按照步骤操作后,它工作得很好。


推荐阅读