问题描述
下面的代码可以在我的Xubuntu机器上运行,但是现在我在Kubuntu上运行,并且不再工作-无法打开端口。
Arduino IDE可以正常工作(可以在板上编写代码),我可以在Chrome中选择设备(Arduino Uno),但是当我尝试打开端口时,代码将停止:Uncaught (in promise) DOMException: Failed to open serial port
或出现required member baudrate is undefined
。
const filters = [
// Filter on devices with the Arduino Uno USB vendor/Product IDs.
{ usbvendorId: 0x2341,usbProductId: 0x0043 },{ usbvendorId: 0x2341,usbProductId: 0x0001 },];
async function getPortAndStartReading() {
if (!portFound) {
const port = await navigator.serial.requestPort({ filters });
await port.open({ baudrate: 9600 }) //problem here
reader = port.readable.getReader();
outputStream = port.writable
readLoop();
if (port) {
connectionToPortSuccessfulMessage = 'Connection successful'
setPortFound(true)
}
}
}
我已经尝试通过遵循this来更改串行端口的权限,所以现在如果我运行groups user
会得到user : user adm dialout cdrom sudo dip plugdev lpadmin lxd sambashare
,但仍然无法正常工作。
我还检查了chrome://device-log
以查看是否可以找到任何错误,但是我得到的只是(物理上)添加或删除USB设备的信息。
解决方法
我也遇到同样的问题。 我有一个用于CircuitPython的在线IDE:
https://github.com/Mr-Coxall/CircuitPython-IDE
它工作正常,最近因出现相同错误而停止运行。 不确定最近发生了什么变化。
,我相信成员名称最近已从“baudrate”更改为“baudRate”。至少在我的情况下,从“波特率”(曾经有效)更改为“波特率”为我修复了它。可能是 Kubuntu 使用的是期望“波特率”的旧版 chrome。