我有这个bash
文件:
#!/bin/bash
stty -F /dev/ttyACM0 cs8 9600 ignbrk -brkint -imaxbel -opost -onlcr -isig -icanon - iext en -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
screen /dev/ttyACM0 9600
echo "1"
这基本上是连接到我的Ubuntu PC的Arduino,我可以完全运行代码,直到echo "1"
部分。
我可以......
"1"
并看到我的灯泡亮起,当我键入"0"
时,灯泡会熄灭。 我现在遇到的问题是我想控制代码中的开/关(没有我手动输入),这似乎几乎不可能。逻辑是正确的但是当我启动screen
时,代码就会停在那里并运行屏幕等待我输入。直到我插上Arduino,echo
终于出来了。有办法解决这个问题吗?
答案 0 :(得分:4)
之前我遇到过这样的问题,这是我的解决方法:
我有更多的运气与cu然后与stty
开始一个屏幕会话:
screen -S arduino -dmS cu -l /dev/ttyACM0 -s 9600
现在有一个名为arduino
的屏幕会话您可以从脚本发送命令:
screen -S arduino -X stuff 1
这将像您的示例一样将1发送到串行连接
如果您想使用其他用户控制此操作,请确保权限允许此操作,并使用将向屏幕会话发送命令的同一用户创建屏幕会话。
如果您有更多问题,请问我。