我正在研究FTDI芯片,并希望通过串口将此芯片连接到操作系统Windows 10。我正在使用下面的代码,结果显示了我不想要的所有可见端口。我需要的是只检测芯片所连接的端口而忽略其余的端口。例如Com 4,所以我只想用Python编写的程序来检测Com4。 顺便说一下,我正在使用Pyserial。 我非常感谢并提前感谢你的帮助
def serial_ports():
if sys.platform.startswith('win'):
ports = ['COM%s' % (i + 1) for i in range(256)]
print ports
elif sys.platform.startswith('linux') or sys.platform.startswith('cygwin'):
# this excludes your current terminal "/dev/tty"
ports = glob.glob('/dev/tty[A-Za-z]*')
elif sys.platform.startswith('darwin'):
ports = glob.glob('/dev/tty.*')
else:
raise EnvironmentError('Unsupported platform')
result = []
print ports
for port in ports:
try:
s = serial.Serial(port)
s.close()
result.append(port)
except (OSError, serial.SerialException):
pass
return result
答案 0 :(得分:0)
了解
可执行此模块以获取端口列表(python -m serial.tools.list_ports)。
它还包含以下功能。serial.tools.list_ports.comports() Returns: an iterable that yields ListPortInfo objects.
该函数返回一个迭代,产生三个字符串的元组:
端口名称,因为它可以传递给serial.Serial或serial.serial_for_url()
人类可读形式的描述
一种硬件ID。例如。可能包含VID:USB串行适配器的PID。