除非Arduino GUI Serial Monitor打开,否则无法回显到arduino串口

时间:2014-10-25 23:18:26

标签: linux serial-port arduino

我有一个相当奇怪的问题。我通过USB串行接口将DCcduino Uno(Arduino Uno copy)插入我的Xubuntu盒子。使用Arduino GUI串行监视器,我可以按预期与电路板通信。此外,当串行监视器打开时,我可以ssh到框中并运行命令 echo 1700 > /dev/ttyUSB0完全没问题。但是,只要我关闭串行监视器(即使Arduino GUI仍在运行),该命令就不再执行任何操作。

我尝试使用stty个参数的几种组合打开串口,包括

中的所有内容
stty -F /dev/ttyUSB0 9600 cs8 cread clocal

stty -F /dev/ttyUSB0 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

但它不会写入arduino。我做错了什么?

修改

我只是设法使用

使其工作
stty -F /dev/ttyUSB0 raw ispeed 9600 ospeed 9600 cs8 -ignpar -cstopb -echo
cat < /dev/ttyUSB0 > /dev/null &
echo "1700" > /dev/ttyUSB0

但是,这仅适用于后台cat正在运行。有没有办法让它在没有那条线的情况下工作?

2 个答案:

答案 0 :(得分:1)

据我所知,Arduino通过串行通信端口进行通信,要求在发送任何串行命令之前存在连接。我认为这可能是一种防止AtMega芯片卡在等待命令的方法。它还必须与USB协议兼容,以防止设备在没有连接的情况下运行。

答案 1 :(得分:0)

我能想到的最好的解决方案是使用pyserial库并通过python与arduino进行通信,使用它像bash和arduino之间的桥梁。我确定这只是一个问题,没有使用stty设置正确的配置,但python工作正常。