串行端口未获得可用端口

serialport not getting available port

我正在尝试获取有关 Rust 中可用串行端口的信息,以确定我对使用 serialport 板条箱发送数据感兴趣的串行端口。

通过做:

serialport::available_ports();

我应该能够获得可用端口的列表。当我以 root 运行 程序(以避免 PermissionDenied 错误)时,我得到的唯一结果是

SerialPortInfo { port_name: "/dev/ttyS0", port_type: "Unknown" }

我试图删除所有 USB 设备和 运行 程序,但结果是一样的。所以我猜 /dev/ttyS0 是一个 USB 集线器,但它很奇怪,因为它没有显示我的 U 盘、键盘、鼠标或网络摄像头。

我尝试打开每个 /dev/ttyS{number},但唯一打开的是 /dev/ttyS0

这是我的 Cargo.toml 文件:

libudev = "0.3.0"
libudev-sys = "0.1.4"
serialport = { version = "4.1.0", default-features = true }
serial = "0.4.0"

我在 Arch Linux 上,程序需要在 Linux 上 运行。我在系统上安装了 pkg-config 依赖项并且也有 udev

尽管是“通用串行总线”,USB 上的设备无法识别为通过串行端口连接。其实从电气上讲它连公交车都算不上

只有提供传统串行传输(如 RS232 或 RS485)的设备属于此类,通常称为“COM 端口”。

虽然有通过 USB 连接的串口。这些“虚拟串行 COM 设备”通常具有 USB 设备类型 CDC/ACM,并将报告为 /dev/ttyACM{number}。

最后一行:您不能通过串行端口访问 USB 设备,虚拟串行 COM 设备除外。