如何停止USB缓冲?

cap*_*232 5 linux windows usb

我正在通过USB读取实时数据,但是数据已缓冲。如何停止缓冲?

cap*_*232 6

的Linux

使用udev更改latency_timer。

在ubuntu上,/etc/udev/rules.d为您的设备创建一个规则。例如99-xsens.rules

在该文件中创建一个规则,以匹配您的设备并设置latency_timer。例如,对于我的设备,这是:

KERNEL=="ttyUSB[0-9]*", SUBSYSTEMS=="usb-serial", DRIVERS=="ftdi_sio", ATTR{device/latency_timer}="2"
Run Code Online (Sandbox Code Playgroud)

这将导致设备等待更短的时间,然后再确定没有更多的传入数据要缓冲。在这种情况下,我的设备从等待16ms变为等待2ms。

使用udevadm info -a -n /dev/ttyUSB0,例如,找出键值对来匹配您的规则中。有一些棘手的事情要牢记,但是一旦我知道使用udev规则,就可以轻松地找到资源来帮助我的来龙去脉。

这是有关编写udev规则的参考页。它很旧,udev工具的语法已更改,但概念仍然有效。

视窗

在Windows上,您可以使用Device Manager->Ports->COM Port->Port Settings->Advanced->Latency Timer