15

pySerial を使用した Windows と Linux の両方でシリアル IO に問題があります。このコードでは、デバイスはコマンドを受信せず、読み取りがタイムアウトします。

import serial
ser = serial.Serial('/dev/ttyUSB0',9600,timeout=5)
ser.write("get")
ser.flush()
print ser.read()

このコードは最初はタイムアウトしますが、その後の反復は成功します。

import serial
ser = serial.Serial('/dev/ttyUSB0',9600,timeout=5)
while True:
    ser.write("get")
    ser.flush()
    print ser.read()

誰が何が起こっているのか教えてもらえますか? sync() の呼び出しを追加しようとしましたが、シリアル オブジェクトを引数として取りません。

ありがとう、ロバート

4

4 に答える 4

20

書き込みと読み取りの間に遅延を入れます。例:

import serial
ser = serial.Serial('/dev/ttyUSB0',9600,timeout=5)
ser.flushInput()
ser.flushOutput()
ser.write("get") 

# sleep(1) for 100 millisecond delay
# 100ms dely
sleep(.1)
print ser.read()
于 2012-10-15T08:56:23.087 に答える