【问题标题】:detect the specific serial port which is conneced to FTDI chip检测连接到FTDI芯片的特定串口
【发布时间】:2017-07-28 09:40:25
【问题描述】:

我正在开发 FTDI 芯片,并希望通过串行端口将此芯片连接到操作系统 Windows 10。我在下面使用这段代码,结果显示了我不想要的所有可见端口。我需要的是仅检测芯片连接的端口并忽略其余端口。例如 Com 4,所以我只想让我用 Python 编写的程序仅检测 Com4。 顺便说一句,我正在使用 Pyserial。 我非常感谢您提前提供的帮助

定义串行端口():

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 

【问题讨论】:

    标签: python pyserial ftdi


    【解决方案1】:

    了解一下

    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。例如。可能包含 USB 串行适配器的 VID:PID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      相关资源
      最近更新 更多