下面的代码在我的 Xubuntu 机器上工作,但现在我在 Kubuntu 上,它不再工作 - 它不会打开端口。
Arduino IDE 工作正常(可以将代码写入电路板),我可以在 Chrome 中选择设备(Arduino Uno),但是当我尝试打开端口时代码将停止:Uncaught (in promise) DOMException: Failed to open serial portrequired 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 设备的信息。

最佳答案

我相信成员名称最近已从“baudrate”更改为“baudRate”。至少在我的情况下,从“波特率”(曾经可以工作)更改为“波特率”为我修复了它。可能是 Kubuntu 使用的是期望“波特率”的旧版 chrome 版本。

关于javascript - Web 串行 API - 未捕获( promise )DOMException : Failed to open serial port/required member baudRate is undefined,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64378562/

10-14 17:00