使用 echo vs screen 会话发送串行命令

Mik*_*man 7 echo tty serial-console stty ttyusb

我有一个由显示驱动程序控制的小型 LED 矩阵,该驱动程序接受串行命令来更新显示。我通过带有节点串行包的节点成功控制了它,但是我希望能够使用 echo 更新它,以便我可以在启动过程中使用 shell 脚本更早地控制它。

为了开始测试这个新方法,我设置了它:

chmod o+rw /dev/ttyUSB0
stty /dev/ttyUSB0 115200
Run Code Online (Sandbox Code Playgroud)

我可以使用屏幕向它发送命令:

screen -F /dev/ttyUSB0 115200
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用时:

echo -e 'title \r' > /dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)

它不起作用,当我在另一个窗口中监视响应时

cat -v < /dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)

我看到它正在接收消息,但它似乎是零散的,并且还不断响应错误,就好像我正在发送大量错误和/或空白命令一样。

如何使用 echo 模拟从屏幕发送的命令?

Mik*_*man 7

我能够配置串行端口,因此 echo 的行为就像屏幕一样。这是我的设置:

stty -F /dev/ttyUSB0 115200 raw -echo -echoe -echok -echoctl -echoke
Run Code Online (Sandbox Code Playgroud)

并回应:

echo -e -n 'command_here\r'  > /dev/ttyUSB0 
Run Code Online (Sandbox Code Playgroud)