我尝试使用适用于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.winmd
和FTDI.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>
我做错了什么?
答案 0 :(得分:2)
好吧,经过长时间的战斗,我找到了解决方案。将它发布在这里以防万一将来需要它。
首先,您应该按照官方FTDI指南安装FTDI drivers from here。
您需要删除Windows为您的设备安装的默认驱动程序。
这样做:
选中“删除此设备的驱动程序软件”复选框非常重要。
对串行控制器也这样做:
然后按照here所述禁用Windows自动驱动程序安装。
然后在设备管理器中扫描硬件更改,您将看到无法识别的设备。
手动为其安装驱动程序。
之后,您将在通用串行总线设备下看到您的设备,而不是控制器。
现在,您可以使用FTDI API完全访问您的设备。
如果您需要,请a link to API guide。它还解释了如何安装正确的FTDI驱动程序。