Python中的SerialTimeoutException未按预期工作

2024-05-20 08:01:41 发布

您现在位置:Python中文网/ 问答频道 /正文

有时,我无法通过串行接口获取任何数据,我希望通过以下方式捕获此情况,但有一个例外:

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()

但是,当我运行这个程序时,如果没有 数据在缓冲区中,我陷入了一个无止境的循环。任何人一个主意 我在这里做错了什么?


Tags: 数据read方式timeoutserial情况somedump
1条回答
网友
1楼 · 发布于 2024-05-20 08:01:41

我甚至不知道那个例外。在查看the API documentation之后,您将看到此异常仅适用于write()

如果您read(),您将得到一个缩短的甚至是空的输出。

这只适用于在超时情况下打开连接的情况。类似于serial.Serial(3, timeout=.1)

相关问题 更多 >