从 linux 命令行读取串行

eri*_*n c 65 linux serial-port

我有一个串行端口设备,我想使用 linux 命令行进行测试。

我可以使用 stty 和 echo 将命令发送到串行端口,但是当设备响应时,我无法读取来自串行端口的内容。我在用

stty -F /dev/ttyS0 speed 9600 cs8 -cstopb -parenb && echo -n ^R^B > /dev/ttyS0

向设备发送命令。设备运行并在 300 毫秒内发回响应。如何使用命令行将该响应打印到控制台?

小智 71

与输出相同。例子:

cat /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)

或者:

cat < /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)

第一个示例是一个应用程序,它打开串行端口并将它从中读取的内容中继到它的stdout(您的控制台)。第二个是 shell 将串行端口流量引导到您喜欢的任何应用程序;这个特定的应用程序然后只是将其中继stdin到它的stdout.

为了更好地了解流量,您可能更喜欢十六进制转储:

od -x < /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)


小智 5

我正在监视 arduino uno 的输出,例如:

screen /dev/ttyUSB0 9600
Run Code Online (Sandbox Code Playgroud)

  • 退出:Ctrl-A、k、y (9认同)
  • 这最适合我查看写入 USB tty 端口的所有数据。`cat` 会立即退出 screen 连续运行的地方,直到通过 CTRL-A k 命令被杀死。 (3认同)