【问题标题】:Connecting to FT232R USB UART device in Windows Runtime 8.1在 Windows Runtime 8.1 中连接到 FT232R USB UART 设备
【发布时间】: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.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>

我做错了什么?

【问题讨论】:

    标签: c# windows-runtime usb uart ftdi


    【解决方案1】:

    好吧,经过长时间的战斗,我找到了解决方案。把它贴在这里以防将来有人需要它。

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

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

    这样做:

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

    对串行控制器也这样做:

    然后按照here 的说明禁用 Windows 自动驱动程序安装。

    然后在设备管理器中扫描硬件变化,你会看到无法识别的设备。

    手动为其安装驱动程序。

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

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

    这里是a link to API guide,以备不时之需。它还解释了如何安装正确的 FTDI 驱动程序。

    【讨论】:

    • 我试图将 USB 转 RJ45 (rs232) 电缆连接到 Aruba AP-110。我遵循了这些说明,尽管它们略有不同。连接电缆后,我在设备管理器的其他设备下看到了一个未知条目。我为它手动安装了 FTDI 驱动程序,这导致 USB 串行转换器(在 USB 控制器下)与 USB 串行端口(在其他设备下)一起出现。 USB 串行端口缺少其驱动程序,因此我再次为其手动安装了相同的 FTDI 驱动程序,然后 USB 串行端口 (COM4) 出现在端口下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 2011-04-10
    相关资源
    最近更新 更多