2017-07-28 89 views
0

我正在使用FTDI芯片,並希望通過串行端口將此芯片連接到操作系統Windows 10。我在下面使用這段代碼,結果顯示了我不想要的所有可見端口。我需要的只是檢測芯片連接的端口,並忽略其餘部分。例如Com 4,所以我只想用Python編寫的程序來檢測Com4。 我正在使用Pyserial。 我很感恩,感謝您的幫助提前檢測連接到FTDI芯片的特定串行端口

高清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

閱讀

serial.tools.list_ports

該模塊可以被執行得到端口列表(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。