【问题标题】:Can't echo to arduino serial port unless Arduino GUI Serial Monitor open除非打开 Arduino GUI 串行监视器,否则无法回显到 arduino 串行端口
【发布时间】:2014-10-25 23:18:26
【问题描述】:

我有一个相当奇怪的问题。我通过 USB 串行接口将 DCcduino Uno(Arduino Uno 副本)插入我的 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。没有那条线有什么办法让它工作吗?

【问题讨论】:

    标签: linux serial-port arduino


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我能想出的最佳解决方案是使用 pyserial 库并通过 python 与 arduino 通信,将其用作 bash 和 arduino 之间的桥梁。我确定这只是没有使用 stty 设置正确配置的问题,但 python 工作得很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多