python遍历所有COM串口,并不断获取数据
时间: 2023-07-25 18:06:07 浏览: 84
可以使用 pySerial 库来遍历所有COM串口,并读取数据。以下是一个示例代码:
```python
import serial.tools.list_ports
import time
# 遍历所有串口
port_list = list(serial.tools.list_ports.comports())
if len(port_list) == 0:
print('无可用串口')
else:
for port in port_list:
print(port.device)
# 打开串口并读取数据
ser = serial.Serial('COM1', 9600, timeout=0.5) # 替换为实际的串口号和波特率
while True:
try:
data = ser.readline().decode().strip()
if data:
print(data)
except serial.SerialException:
print('串口连接中断')
break
time.sleep(0.1)
ser.close()
```
上述代码会遍历所有可用的COM串口,并打印出它们的设备名称。然后,它会打开COM1串口,并不断读取数据。如果有数据可读,则将其打印出来。注意,这里的读取方式是使用 `readline()` 方法读取一行数据,所以需要在串口设备端发送带有换行符的数据,以便正确读取。同时,还需要注意在读取数据时加入适当的延时,以避免过于频繁地读取数据导致CPU资源浪费或者串口数据丢失。
阅读全文