我正在尝试从连接到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
这很奇怪,因为它正在工作...
我想捕获响应并将其存储在变量中。
答案 0 :(得分:0)
我建议您摆脱stty raw
。
除非您发送/接收tty子系统将要处理的特殊字符,否则这不太可能-因为您说它正在运行-几乎可以肯定不需要它。
如果确实有效,您可能会发现一些不良副作用,例如:
以及终端会话中可能依赖的其他内容。
FWIW,我在Mac,Windows(cygwin)和Linux(从usb /串行端口读取)上使用Arduino做类似的事情,并且在任何这些环境中我都没有尝试使用stty raw
。 / p>