欢迎访问宙启技术站
智能推送

使用Python的serial.tools.list_ports.comports()函数自动检测可用的串口

发布时间:2024-01-13 17:44:33

Python的serial.tools.list_ports.comports()函数用于自动检测可用的串口并返回一个列表。每个列表项都包含串口名称、描述和设备。

使用示例:

import serial.tools.list_ports

# 获取可用的串口
ports = serial.tools.list_ports.comports()

# 遍历所有可用的串口
for port in ports:
    print("串口名称:", port.device)  # 输出串口名称
    print("描述:", port.description)  # 输出描述
    print("设备:", port.hwid)  # 输出设备
    print("-----------")

上述代码将列出所有可用的串口名称、描述和设备。

另外,serial.tools.list_ports.comports()函数还接受一个可选的参数include_links,用于控制是否包括串口的符号链接,默认为False

# 包括符号链接的可用串口
ports = serial.tools.list_ports.comports(include_links=True)

除了上述代码中的基本用法之外,serial.tools.list_ports.comports()函数还支持其他一些可选参数,例如:

- baudrate:指定波特率。只返回支持指定波特率的端口。

- timeout:指定超时时间(以秒为单位)。只返回在指定时间内响应的端口。

- write_timeout:指定写超时时间(以秒为单位)。只返回在指定时间内写入成功的端口。

要使用这些参数,只需将它们作为关键字参数传递给函数:

# 返回支持指定波特率的串口
ports = serial.tools.list_ports.comports(baudrate=9600)

# 返回在1秒内响应的串口
ports = serial.tools.list_ports.comports(timeout=1)

# 返回在1秒内成功写入的串口
ports = serial.tools.list_ports.comports(write_timeout=1)

总结:

以上是使用Python的serial.tools.list_ports.comports()函数自动检测可用的串口的示例。该函数返回一个包含串口名称、描述和设备的列表,可以通过遍历列表来获取每个串口的详细信息。还可以使用可选参数来限制返回的串口,例如指定波特率、超时时间等。