【发布时间】:2016-01-28 17:15:17
【问题描述】:
我正在尝试使用适用于 Windows Store 应用程序的 Windows 运行时组件连接到 FT232R USB UART 设备。不幸的是,似乎没有任何效果。
我的设备有一个 0x0403 的 vid 和一个 0x6001 的 pid,这对于这种类型的设备来说似乎很标准。
我尝试了this approach,但在我的情况下,ClassCode 和 SubClassCodde 分别为 0x00,InterfaceClassCode 和 InterfaceSubClassCode 均为 0xFF。所有这些数据都来自USB view utility。
使用基于这些类和子类代码的选择器,DeviceInformation.FindAllAsync(selector) 找不到设备。基于 vid 和 pid 创建的选择器也找不到任何设备。
如果没有选择器,则会找到设备,但我会在 UsbDevice.FromIdAsync(serviceInfo.Id) 中收到 null。
我还尝试了 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>
我做错了什么?
【问题讨论】:
标签: c# windows-runtime usb uart ftdi