使用bash和raspberry pi 3从USB设备读取数据?

时间:2019-07-03 03:04:20

标签: linux bash raspberry-pi raspberry-pi3 stty

我正在尝试从连接到USB的设备上捕获响应。 使用以下代码:

sudo stty -F /dev/ttyUSB0 speed 115200 cs8 -cstopb -parenb -echo
sudo stty raw; cat > /home/received.log < /dev/ttyUSB0
echo "Monitor started"

在端口就绪后,将命令请求发送到设备

echo -en '\x5A\x00\x00\x0D\x0A\x71' > /dev/ttyUSB0

然后读取日志并将响应粘贴到另一个文件中,将其正确转换 xxd -plain /home/received.log> /home/output.txt

所以我可以显示数据, 猫-v

但是我需要更稳定的东西,该代码向我显示此错误:

stty: 'standard input': Inappropriate ioctl for device

这很奇怪,因为它正在工作...

我想捕获响应并将其存储在变量中。

1 个答案:

答案 0 :(得分:0)

我建议您摆脱stty raw

除非您发送/接收tty子系统将要处理的特殊字符,否则这不太可能-因为您说它正在运行-几乎可以肯定不需要它。

如果确实有效,您可能会发现一些不良副作用,例如:

  • 退格键不会删除您错过键入的字符
  • control-c不会终止您的进程

以及终端会话中可能依赖的其他内容。

FWIW,我在Mac,Windows(cygwin)和Linux(从usb /串行端口读取)上使用Arduino做类似的事情,并且在任何这些环境中我都没有尝试使用stty raw。 / p>