pyftdi 在 OS X 但不是 Windows 下找到设备

pyftdi finds device under OS X but not Windows

我将 FTDI FT230XS 插入我的 MacBook Pro。以下作品在 OS X / python3.6:

from pyftdi.ftdi import Ftdi
x = Ftdi()
x.open_bitbang_from_url('ftdi:///1')

但是,我在 VirtualBox 运行 Windows 7(32 位)下做同样的事情时遇到了问题。我竭尽全力确保 USB 设备存在于 VirtualBox 环境中:插入时我听到 "bu-dum!" 的声音,并且 serial.tools.list_ports.comports() 确认它存在。但是,打开失败:

>>> from pyftdi.ftdi import Ftdi
>>> x = Ftdi()
>>> x.open_bitbang_from_url('ftdi:///1')
Traceback (most recent call last):
  File "C:\...site-packages\pyftdi\usbtools.py", line 375, in parse_url
    candidates[idx]
IndexError: list index out of range

During handling of the above exception, another exception occurred:
...
pyftdi.usbtools.UsbToolsError: No USB device matches URL ftdi:///1

知道我应该做些什么吗?

假设您已经从某些来源(Zadig、libusb win32 等)加载了 libusb-win32,您需要将 FTDI 设备声明为 Windows 作为 described in the documentation。步骤回顾:

  • libusb-win32 Sourceforge site 下载并安装 libusb-win32-devel-filter-x.x.x.x.exe。选择最新版本(当前为 1.2.6.0)并确保下载 devel-filter 安装程序。
  • 插入您的 FTDI 设备,单击 运行 安装程序并按照说明进行操作。它应该为您的特定设备创建一个过滤器。

最简单的方法是下载 ZADIG 并使用它为您要在 pyusb 中使用的设备安装 libusb。

记得在“选项”菜单中标记“显示所有设备”。