【问题标题】:Is it possible to programmatically alter a USB<->Serial converter's 'BM' latency option?是否可以以编程方式更改 USB<->串行转换器的“BM”延迟选项?
【发布时间】:2012-03-13 18:18:44
【问题描述】:

有没有办法以编程方式更改 USB串行适配器的“BM Options Latency Timer”?需要在嵌入式 windows xp 上工作。可以是 .net 2.0 或原生 windows 解决方案...

【问题讨论】:

  • 如果你不能等待答案(这种问题可能需要几个月......)试试这个:运行ProcMon,更改设置,看看是否有任何明显相关的注册表或磁盘活动。
  • 如果您将其添加为答案,我会投赞成票并试一试:-)
  • 我通常不会发布那种东西作为答案,即使它最终会有所帮助:)
  • 这样的时候,我希望有一种方法可以接受多个答案。对 ProcMon 的一些探索表明,当我更改设备管理器中的值时,它会被设置:HKLM\System\CurrentControlSet\Enum\FTDIBUS\VID_0403+PID_6001+A600fcUkA\0000\Device Parameters\LatencyTimer。非常感谢您的帮助!

标签: c++ .net windows serial-port


【解决方案1】:

我认为您使用的是 FTDI USB 串行转换器。然后你可以使用libftdi

并查看Application Notes(尤其是 AN232B-04),因为它们包含许多有用的信息。

【讨论】:

  • 碰巧,它看起来确实是内部的 FTDI 芯片(FT232RL)。
  • @Jon Cage:再看看application notes。特别是 AN232B-04。在第 3.2 节中,它告诉您如何预配置延迟。
  • 接受:那些应用笔记看起来很棒。不确定我是否会使用 libftdi 或直接进入注册表。
【解决方案2】:

这是特定于驱动程序的。你最好的办法是按照 romkyns 所说的去做,并尝试找出驱动程序存储此设置的位置。您可能需要在更改设置后关闭并重新打开串行端口,假设您能够了解它的存储方式并能够更改它。

【讨论】:

    【解决方案3】:

    截至 2016 年,由于 Windows 驱动程序基础架构的变化,AN232B-04 中的建议可能已经过时。如今,需要对驱动程序包中的所有文件进行签名,这意味着如果不重新签署驱动程序,就无法在 inf/cat 文件中编辑值,否则无法使用股票 FTDI 驱动程序。

    如果您使用的是 libftdi,则可以根据 rve 的回答在运行时配置此值。如果您更喜欢使用 FTDI 自己的驱动程序和 Windows 的标准 COM 端口 API,并且需要配置此值,您仍然可以通过编辑注册表以编程方式永久更改它。

    如果你走这条路,你需要改变HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\FTDIBUS\VID_0403+PID_6001+KBxxxxxxx\0000\Device Parameters键下的DWORD值LatencyTimer。此示例中的KBxxxxxxx 需要替换为您设备的序列号。您需要更高的权限才能更改此值,例如通过引发 UAC 提示。此时可能需要重新启动设备驱动程序才能使更改生效,例如通过拔下和重新插入设备。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多