在Windows运行时8.1中连接到FT232R USB UART设备
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Windows运行时8.1中连接到FT232R USB UART设备相关的知识,希望对你有一定的参考价值。
我正在尝试使用适用于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>
我究竟做错了什么?
好吧,经过长时间的战斗,我找到了解决方案。将它发布在这里,万一有人将来需要它。
首先,您应该遵循官方FTDI指南来安装FTDI drivers from here。
您需要删除Windows为您的设备安装的默认驱动程序。
这样做:
检查“删除此设备的驱动程序软件”复选框非常重要。
对串行控制器也这样做:
然后如here所述禁用Windows自动驱动程序安装。
然后在设备管理器中扫描硬件更改,您将看到无法识别的设备。
手动为其安装驱动程序。
之后,您将在通用串行总线设备下看到您的设备,而不是控制器。
现在,您可以使用FTDI API完全访问您的设备。
如果你需要它,这是a link to API guide。它还解释了如何安装正确的FTDI驱动程序。
以上是关于在Windows运行时8.1中连接到FT232R USB UART设备的主要内容,如果未能解决你的问题,请参考以下文章
Windows 8.1 服务无法连接到 SQL Server 数据库
如何在 Windows 上的 Python 3 中连接到 MySQL?
在 javascript 中连接到 mongoose 数据库时出错