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。如果您不确定上述设置是什么,请问,我可以写出更完整的答案。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |