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

Windows 8下WebUSB调用USBDevice.open()提示Access denied问题求助

解决WebUSB打开ESP32系列设备的权限问题

问题背景

  • 系统环境:Windows 8
  • 涉及设备:Wemos D1 R32、ESP32 UWB设备
  • 核心现象:设备可被Chrome识别,但调用device.open()时抛出权限错误,当前设备使用「Silicon Labs CP210x USB to UART Bridge」驱动

测试代码

document.getElementById('getDevices').addEventListener('click', (event) => {
      navigator.usb.requestDevice({
        filters: []
      }).then(function (device) {
        console.log(device);
        return device.open(); // Begin
      })
      .catch(error => {
        console.error(error);
     });
});

报错信息

DOMException: Failed to execute 'open' on 'USBDevice': Access denied.

驱动替换问题

尝试替换为Chromium提供的驱动inf文件时,收到系统提示:


Select Device

The folder you specified doesn't contain a compatible software driver for your device. If the folder contains a driver, make sure it is designed to work with Windows for x64-based systems.


解决方案

1. 给CP210x设备安装WinUSB驱动

你之前用的Chromium inf文件是针对USB gadget的,和CP210x设备不匹配。正确做法是给设备安装WinUSB驱动:

  • 打开设备管理器,找到你的CP210x设备
  • 右键选择「更新驱动程序」→「浏览我的计算机以查找驱动程序软件」
  • 选择「让我从计算机上的可用驱动程序列表中选取」
  • 从列表里找到「WinUSB设备」并安装;如果列表里没有,可手动指定Windows SDK自带的WinUSB inf文件,或者用Zadig工具自动安装

2. 用Zadig工具一键替换驱动

Zadig是专门处理USB驱动替换的工具,能自动适配设备:

  • 下载对应Windows 8 x64版本的Zadig工具
  • 打开工具后,点击「Options」→「List All Devices」
  • 在设备列表里找到你的CP210x设备(显示名称可能和设备管理器一致)
  • 右侧驱动下拉菜单选「WinUSB」,点击「Replace Driver」完成安装

3. 验证修复效果

安装完成后重启Chrome,重新测试代码:

  • 确保没有其他串口工具占用该设备
  • 调用navigator.usb.requestDevice()选中设备后,应该能正常执行device.open()

额外注意事项

  • Windows 8的WebUSB功能需要Chrome 61及以上版本,确认你的Chrome版本达标
  • 部分ESP32设备需要在固件中添加WebUSB描述符才能正常被WebUSB识别,若驱动替换后仍有问题,检查固件是否开启了WebUSB兼容模式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 21:15:34