WINDOWS 上的 WebSerial API - “DOMException:无法打开串行端口。”

Posted

技术标签:

【中文标题】WINDOWS 上的 WebSerial API - “DOMException:无法打开串行端口。”【英文标题】:WebSerial API on WINDOWS - "DOMException: Failed to open serial port." 【发布时间】:2021-07-29 16:38:15 【问题描述】:

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

DOMException: 打开串口失败。

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

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

下面是我正在使用的代码,当代码运行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 的类似问题,但没有给出答案或解决方案。 (Question 1 和 Question 2)

【问题讨论】:

【参考方案1】:

这是驱动程序问题。

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

它以我不懂的语言链接到 Youtube 视频。但是,这些步骤很容易遵循。下载驱动并按照步骤操作后,就可以正常使用了。

【讨论】:

以上是关于WINDOWS 上的 WebSerial API - “DOMException:无法打开串行端口。”的主要内容,如果未能解决你的问题,请参考以下文章

Windows 上的 Tensorflow 对象检测 API - 错误“ModuleNotFoundError: No module named 'utils'”

Chrome + Windows 8.1 上的 Web Share API 是不是损坏?

我无法从 Windows 托管的 Web API 上的 IIS 访问 wkhtmltopdf

Windows XP 与 Vista/7 上的 MS Crypto API 行为

Windows 上的 httpd.conf:找不到 API 模型结构 `php8_module`

在某些特殊情况下,Win32 ShowWindow api 在 Windows 7 SP1 上的行为是不是不同?