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 回答