嵌入式部分BUG与解决方法记录(不定期更新)

关闭串口缓存

在使用422转USB数据线采集IMU数据时,上位机的USB驱动程序会对接收到的数据进行缓存,表现在于IMU使用200Hz的频率发送IMU数据,而采集到的IMU数据的时间戳间隔并不是5ms,而是出现一串时间戳相近的数据,这串数据就是因为被驱动程序缓存到了一个包里,然后再发送给上位机程序,所以上位机读取到这些数据时的时间都是相近的。解决方法如下:
https://stackoverflow.com/questions/3267139/how-do-i-stop-usb-buffering

对于linux系统,首先使用udevadm info -a -n /dev/ttyUSB0查看对应串口设备的键值对,如果返回列表中存在ATTRS{latency_timer},则可以通过减少latency_timer来减少缓存

然后在/etc/udev/rules.d为串口设备创建一个规则文件:99-ttyusb.rules

KERNEL=="ttyUSB[0-9]*", SUBSYSTEMS=="usb-serial", DRIVERS=="ftdi_sio", ATTR{device/latency_timer}="2"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值