micropython from serial import SerialTimeoutException ImportError: cannot import name 'SerialTimeoutException' from 'serial' (C:\Users\anjiz\AppData\Roaming\Python\Python310\site-packages\serial\__init__.py)
时间: 2023-07-08 14:49:03 浏览: 312
python ImportError: DLL load failed while import cv2: 找不到指定的模块。
5星 · 资源好评率100%
这个错误是因为 MicroPython 中的 serial 库不支持 SerialTimeoutException 类。在 MicroPython 中,通常使用 try-except 块来捕获超时错误,并在发生错误时采取适当的措施(例如重新发送数据或关闭串行端口)。以下是一个例子:
```
import machine
import time
uart = machine.UART(0, 9600)
while True:
try:
uart.write("Hello World!\n")
response = uart.readline()
print(response)
except OSError as e:
if e.args[0] == 110: # 'ETIMEDOUT' error number
print("Timeout occurred, retrying...")
continue
else:
raise e
```
在这个例子中,我们使用 machine 模块初始化了 UART 端口,并在一个循环中发送消息并读取响应。如果发送或接收发生超时错误,我们会捕获 OSError 异常,并检查其错误代码是否为 110(表示超时错误)。如果是超时错误,我们会打印一条消息,然后继续循环。如果不是超时错误,我们会重新引发异常,以便在控制台上显示错误信息。
阅读全文