4
我正在通過USB讀取實時數據,但數據被緩衝。我如何停止緩衝?如何停止USB緩衝?
我正在通過USB讀取實時數據,但數據被緩衝。我如何停止緩衝?如何停止USB緩衝?
Linux的
使用udev改變latency_timer。
在Ubuntu上,爲您的設備在/etc/udev/rules.d
中創建規則。例如
在該文件中創建一條規則以匹配您的設備並設置latency_timer。例如,對於我的設備,這是:
KERNEL=="ttyUSB[0-9]*", SUBSYSTEMS=="usb-serial", DRIVERS=="ftdi_sio", ATTR{device/latency_timer}="2"
這會導致設備在決定不再有傳入數據進行緩衝之前等待較短的時間。在這種情況下,我的設備從等待16ms等待2ms。
例如,使用udevadm info -a -n /dev/ttyUSB0
來找出在規則中匹配哪些鍵值對。有一些棘手的事情需要記住,但一旦我知道使用udev規則,尋找資源來幫助進行這些操作就很容易了。
這是一個關於writing udev rules的很好的參考頁面。它是舊的,udev工具的語法已經改變,但這些概念仍然有效。
的Windows
在Windows上使用Device Manager->Ports->COM Port->Port Settings->Advanced->Latency Timer
。
對不起殭屍回覆,但爲什麼修改COM端口設置對緩衝USB讀取操作有任何影響? – Dennis 2016-06-24 08:45:51