【问题标题】:Python USB Serial works in IDLE but not when run as a filePython USB Serial 在 IDLE 中有效,但在作为文件运行时无效
【发布时间】:2016-09-20 03:54:34
【问题描述】:

我目前正在尝试使用 Python 将 USB 串行写入我的 Arduino Nano。但是,我发现(使用 exact 相同的代码),当我将其键入 IDLE 时,该代码可以完美运行,但是当我将其保存到文件并尝试从那里运行时,由于某种原因,Arduino 从未接收到数据。我已经检查并在两个位置都使用了正确版本的 Python (2.7.9)(很遗憾,由于我正在使用其他库,我无法使用 Python 3)。

我正在使用的代码:

import serial
ser = serial.Serial(port='/dev/ttyUSB0', baudrate=9600)
ser.write('0')
print ser.readline()

当我通过单独输入行在 IDLE 中运行它时,会看到正确的行为:Arduino 响应(转动伺服)并回显它发送的数据,这些数据被正确打印。然而,从保存的文件运行,伺服没有响应,也没有收到回声。

有什么想法吗?

【问题讨论】:

  • 从控制台运行,看看是否有错误信息。
  • 我看不到任何东西(我已经尝试同时以 sudo 运行,但也没有,也没有)
  • 没关系,看看我在下面发布的答案。

标签: python arduino raspberry-pi pyserial


【解决方案1】:

我之前不知何故错过了 SO 上的这个答案 (pySerial write() works fine in Python interpreter, but not Python script),但事实证明我需要在打开串行端口后添加一个 time.sleep(2)。我的猜测是,在 IDLE 中,我输入下一行所花费的时间导致了这种延迟,但它在代码中立即发生。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多