【问题标题】:Reading from a USB device using bash and raspberry pi 3?使用 bash 和树莓派 3 从 USB 设备读取?
【发布时间】:2019-07-03 03:04:20
【问题描述】:

我正在尝试捕捉来自连接到 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

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

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

stty: 'standard input': Inappropriate ioctl for device

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

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

【问题讨论】:

  • 哪个 stty 正在生成消息? stty raw 还是 stty -F ...?还有,你为什么要把你的终端设置成raw???
  • 我不知道生成该消息的原因
  • 我知道,你已经说过了。但是在您的帖子中,有两 (2) 个 stty 命令。哪一个导致消息显示?
  • 哦,第二个

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


【解决方案1】:

我建议摆脱stty raw

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

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

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

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

FWIW,我正在使用 Arduino 到 Mac、Windows (cygwin) 和 Linux(从 USB/串行端口读取)做类似的事情,并且在任何这些环境中我都没有受到 stty raw 的诱惑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2018-02-07
    • 2023-01-30
    • 1970-01-01
    相关资源
    最近更新 更多