在Windows运行时8.1中连接到FT232R USB UART设备

时间:2016-01-28 17:15:18

标签: c# windows-runtime usb uart ftdi

我尝试使用适用于Windows应用商店的Windows运行时组件连接到FT232R USB UART设备。不幸的是,似乎没什么用。

我的设备的视频为0x0403,pid为0x6001,这对于此类设备来说似乎非常标准。

我试过this approach但在我的情况下,ClassCode和SubClassCodde分别是0x00,InterfaceClassCode和InterfaceSubClassCode都是0xFF。所有这些数据都来自USB view utility

使用基于这些类和子类代码的选择器DeviceInformation.FindAllAsync(selector)找不到任何设备。此外,基于vid和pid创建的选择器也找不到任何设备。

如果没有选择器,则会找到设备,但我会在null中收到UsbDevice.FromIdAsync(serviceInfo.Id)

我也尝试过FTDI方法。我下载了FTDI驱动程序并引用了FTDI.D2xx.WinRT.winmdFTDI.D2xx.WinRT.USB.winmd。我使用this PDF中记录的方法,但FTDI.D2xx.WinRT.FTManager.GetDeviceList()返回空列表。

根据我发现的文档定义DeviceCapabilities:

<Capabilities>
    <m2:DeviceCapability Name="usb">
      <!--FT232AM, FT232BM, FT232R and FT245R Devices-->
      <m2:Device Id="vidpid:0403 6001">
        <m2:Function Type="name:vendorSpecific" />
      </m2:Device>
    </m2:DeviceCapability>
</Capabilities>

我做错了什么?

1 个答案:

答案 0 :(得分:2)

好吧,经过长时间的战斗,我找到了解决方案。将它发布在这里以防万一将来需要它。

首先,您应该按照官方FTDI指南安装FTDI drivers from here

您需要删除Windows为您的设备安装的默认驱动程序。

Uninstalling default drivers

这样做:

enter image description here

选中“删除此设备的驱动程序软件”复选框非常重要。

enter image description here

对串行控制器也这样做:

enter image description here

然后按照here所述禁用Windows自动驱动程序安装。

然后在设备管理器中扫描硬件更改,您将看到无法识别的设备。

enter image description here

手动为其安装驱动程序。

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

之后,您将在通用串行总线设备下看到您的设备,而不是控制器。

enter image description here

现在,您可以使用FTDI API完全访问您的设备。

如果您需要,请a link to API guide。它还解释了如何安装正确的FTDI驱动程序。