4

シリアルインターフェースを介してデータを取得しないことがあり、次の方法で例外を除いてこのケースをキャッチしたいと思います。

ser          = serial.Serial(3)
ser.baudrate = 115200
timeout      = 1

while (some condidion)
  try:
    dump = ser.read(40)
  except ser1.SerialTimeoutException:
    print('Data could not be read')

ser.close()

ただし、このプログラムを実行すると、バッファにデータがなく、無限ループに陥ったときに例外がキャッチされることはありません。私がここで間違っていることを誰かが知っていますか?

4

1 に答える 1

7

私はその例外についてさえ知りませんでした。APIドキュメントを確認すると、この例外はにのみ適用されることがわかりますwrite()

の場合read()、出力が短くなるか、空になります。

また、これは、タイムアウトで接続を開いた場合にのみ適用されます。のようなものserial.Serial(3, timeout=.1)

于 2012-06-11T10:22:30.210 に答える