代码之家  ›  专栏  ›  技术社区  ›  cape1232

如何停止USB缓冲?

  •  4
  • cape1232  · 技术社区  · 14 年前

    1 回复  |  直到 14 年前
        1
  •  7
  •   Community CDub    4 年前

    Linux操作系统

    使用udev更改延迟计时器。

    在ubuntu上,在 /etc/udev/rules.d 为您的设备。如 99-xsens.rules

    在该文件中创建一个规则以匹配您的设备并设置延迟计时器。例如,对于我的设备:

    KERNEL=="ttyUSB[0-9]*", SUBSYSTEMS=="usb-serial", DRIVERS=="ftdi_sio", ATTR{device/latency_timer}="2"
    

    这会导致设备在确定没有更多的传入数据要缓冲之前等待更短的时间。在这种情况下,我的设备从等待16毫秒变为等待2毫秒。

    udevadm info -a -n /dev/ttyUSB0 ,例如,找出规则中要匹配的键值对。有一些棘手的事情要记住,但找到资源来帮助进出是很容易的,一旦我知道使用udev规则。

    这里有一个很好的参考页 writing udev rules . 它很旧,udev工具的语法也发生了变化,但是概念仍然有效。

    在您使用的窗口上 Device Manager->Ports->COM Port->Port Settings->Advanced->Latency Timer .