在 Ubuntu 中从多个串行端口读取数据

在 Ubuntu 中从多个串行端口读取数据

我正在尝试读取和记录连接到不同 Arduino 的两个 USB 的数据,并且它们正在收集不同的测量值。

我在 Ubuntu 中读取单个串行流时遇到困难

我通过 Oracle VM Virtualbox 安装了 Ubuntu。我以前使用 Cygwin,只需导航到我想要存储 txt 文件的文件夹并写入:

tee </dev/ttyS1 test.txt

监视并记录数据流。

如果我在 Ubuntu 中的随机文件夹中写入相同的命令,即使我在前面添加 sudo,我也会看到权限被拒绝的情况。

如何监控和记录单个串行流? 如何监控和记录多个串行流?

答案1

检查串行 USB 的名称是否正确

拔下设备后输入

ls -la /dev/tty*

现在插入设备并输入

ls -la /dev/tty*

应该会出现另一个设备。如果出现,那么这就是新设备

你可能会看到类似

crw-rw----    root dialout  166,  0 Sept 19 12:30 ttyACM0

如果您这样做,设备将被识别。请注意,在上面的例子中,它被称为ttyACM0你的可能会有所不同。

注意本例中的组拨出 如果你不是该群组的成员,请添加你自己的

sudo useradd dialout $USER

现在,您应该能够使用上面找到的名称来使用串行端口,在我的情况下,该名称是ttyACM0

答案2

问题在于重定向没有像您假设的那样工作。这可以正常工作:

sudo sh -c "tee </dev/ttyS1 test.txt"

或者你可以以 root 身份登录:

sudo -i
tee </dev/ttyS1 test.txt

相关内容