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
相关产品推荐
相关产品推荐

