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

Windows 11下navigator.serial连接ESP32 SPP蓝牙设备失败问题求助

Windows 11下navigator.serial连接ESP32 SPP蓝牙设备失败问题求助

我开发了一个Web应用,通过**SPP(串口协议)**把ESP32蓝牙设备当作串口来连接。这个应用在Windows 10的电脑上运行完全正常,但换到Windows 11的电脑测试时,却怎么都连不上了。

控制台只输出一句「Cannot connect with the serial port」,没有任何额外的细节信息。这真的很奇怪,毕竟除了操作系统从Win10换成Win11,其他配置和代码都没动过啊。

Win10环境下一点就能正常连接,但Win11电脑上每次尝试都会触发这个错误。我试过各种方式想获取更多连接相关的调试信息,但除了「无法连接」的提示外,什么有用的内容都拿不到...

以下是我负责连接的代码:

const connectToESP32 = async () => {
let newPort = null
let readers = null
let writers = null
try {
  // @ts-ignore
  newPort = await navigator.serial.requestPort({
    filters: [{ bluetoothServiceClassId: btClass }],
  })
  if ("serial" in navigator) {
    toast.loading("Connected", {
      id: "1",
    })
  } else {
    toast.error("Not compatible", {
      id: "1",
    })
  }
  await newPort.open({ baudRate: 115200 })
  setPort(newPort)
  console.debug("Port info: ", newPort.getInfo())

  const textDecoder = new TextDecoder()
  readerRef.current = newPort.readable?.getReader()
  writerRef.current = newPort.writable?.getWriter()

  readers = readerRef.current
  writers = writerRef.current

}} catch (error) {
  console.error("Error connecting:", error)
  setStopProg(true)
  toast.error("Error connecting", {
    id: "1",
  })
  if (newPort) {
    try {
      // @ts-ignore
      readers.releaseLock()
      // @ts-ignore
      writers.releaseLock()
      await newPort.close()
    } catch (error) {
      console.error("Error al cerrar puerto:", error)
    }
    setPort(null)
  }
}
}

这个应用之前在Win10上完全没问题,我怀疑是不是Windows 11系统底层的某个环节(比如蓝牙串口的适配逻辑)出了问题?有没有大佬遇到过类似的情况,能给我点排查方向吗?

备注:内容来源于stack exchange,提问作者Álvaro Martínez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 15:58:10