import serial.tools.list_ports
def serial_ports():
# produce a list of all serial ports. The list contains a tuple with the port number,
# description and hardware address
#
ports = list(serial.tools.list_ports.comports())
# return the port if 'USB' is in the description
for port_no, description, address in ports:
if 'USB' in description:
return port_no
pyserial可以列出端口及其USB VID:PID编号。
此函数返回一个元组,第三个项是一个字符串,可能包含USB VID:PID号。你可以从那里分析。或者,您可以使用
grep
模块提供的list_ports
函数:这个函数返回一个生成器对象,您可以遍历它。如果不太可能有两个设备连接到同一个VID:PID(我不这么认为,但出于测试目的,这是可以的),您可以这样做:
list_ports的文档。
注意:我只在linux上测试过。pyserial文档警告说,在某些系统上,可能没有列出硬件ID。
我假设您正在设备管理器中专门寻找一个被描述为USB到RS232的COM端口,而不是想要列出所有可用的COM端口?
另外,您还没有提到您正在开发的操作系统,或者您正在使用的Python版本,但是对于使用Python 3.4的Windows系统,这一点对我很有用:
相关问题 更多 >
编程相关推荐