首页 > 解决方案 > 拥有基于 pythod 的 FTDI 服务器的任何方式

问题描述

我正在使用 FTDI 驱动程序 (pyftdi) 与通过 USB 连接到 PC 的基于 FT4232H 的 FTDI 设备进行通信,而另一侧的设备连接到另一个硬件 DUT。

有 GUI 可以调用 pyftdi 驱动程序从 PC 连接到 DUT,我可以通过 GUI 控制 DUT。

现在,我有另一个要求,我想在连接 GUI 的同一个 DUT 上并行运行几个独立脚本。当此脚本尝试建立串行连接时,它会失败并显示以下错误消息:

File "C:\Python37\lib\site-packages\pyftdi\i2c.py", line 512, in configure
    frequency = self._ftdi.open_mpsse_from_url(url, **kwargs)
  File "C:\Python37\lib\site-packages\pyftdi\ftdi.py", line 543, in open_mpsse_from_url
    debug=debug)
  File "C:\Python37\lib\site-packages\pyftdi\ftdi.py", line 662, in open_mpsse_from_device
    frequency = self._set_frequency(frequency)
  File "C:\Python37\lib\site-packages\pyftdi\ftdi.py", line 1929, in _set_frequency
    self.write_data(cmd)
  File "C:\Python37\lib\site-packages\pyftdi\ftdi.py", line 1507, in write_data
    raise FtdiError('UsbError: %s' % str(ex))
pyftdi.ftdi.FtdiError: UsbError: [Errno None] b'libusb0-dll:err [claim_interface] could not claim interface 0, win error: Cannot create a file when that file already exists.\r\n' 

是否可以创建 FTDI 服务器类型的接口来同时为这两个连接提供服务?

进行串行连接的方式是通过 pyftdi

self.port = pyftdi.serialext.serial_for_url(self.name,
                                                    baudrate=self.baudRate,
                                                    timeout=self.timeout,
                                                    bytesize=8,
                                                    stopbits=1,
                                                    parity='N',
                                                    xonxoff=False,
                                                    rtscts=False)

标签: pythonftdi

解决方案


推荐阅读