Bash,串行I/O和Arduino

前端之家收集整理的这篇文章主要介绍了Bash,串行I/O和Arduino前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以,我有点在我的头上,我觉得我非常接近一个解决方案,但它还没有工作。这是我的情况:

我正在使用Arduino微控制器,我正在尝试编写两个Bash脚本(现在运行在Mac OS X 10.6中),它将(a)将从Arduino单元发出的所有串行数据打印到标准输出,以及(b)允许我将串行数据发送到Arduino单元。然后使用Adobe AIR的NativeProcess API调用这些脚本,以便在Arduino单元和Flex Adobe AIR应用程序之间进行紧密集成。

我的两个脚本很简单 –

这是我的WriteToSerial.sh脚本:

echo $1 > $2

($ 1显然是我的字符串,$ 2是串口的位置 – 目前为/dev/tty.usbserial-A800eIUj)

这是我的ReadSerialOutput.sh脚本:

tail -f $1

($ 1是我的串口的位置,目前为/dev/tty.usbserial-A800eIUj)

当我调用这些脚本(或者即使我直接键入命令到Bash控制台),我的电脑只是挂起 – 我可以键入字符,但没有任何事情,直到我Ctrl C出来的过程。

但是,如果我打开Arduino IDE并打开串行监视器,然后尾端,关闭串行监视器,然后回显“test”>串口,一切都很好。

这给我建议,在Arduino IDE中打开串行监视器是以某种方式初始化串行端口,这反过来允许我拖尾它没有问题。这反过来又告诉我,我只是没有输入某种初始化命令。但是,我一直在寻找高低的日子,似乎找不到任何解决这个问题的东西。

解决办法是什么?

尝试使用工具 stty
stty -F /dev/my_serial_port <baud_rate> cs8 cread clocal

一如以往,请阅读联机帮助页,然后再应用上述内容。 cread允许您接收数据。如果您正在使用流量控制,您可能需要省略clocal。如果您不确定上述设置是什么,请问,我可以写出更完整的答案。

原文链接:https://www.f2er.com/bash/388517.html

猜你在找的Bash相关文章