在Linux中读取串行设备的更好方法

在Linux中读取串行设备的更好方法,linux,serial-port,Linux,Serial Port,我有一个串行设备连接到我的Linux PC的USB,我需要不断地从中读取数据并进行处理。 当我使用openfd,xxx时,虽然1{readfd,xx}它可以工作,但我丢失了超过60%的数据 是否有更好的技术可以减少数据丢失 附录 波特率是115200。我们必须每秒至少收到10包,但我们只收到两包。。数据包大小为22字节。代码正是第二条注释中的代码 是的,您需要指定更多。我假设您正在尝试从串行端口读取数据。这是我几年前使用的一些代码:这是一个串行到USB设备。插入我的USB端口,创建/dev/tt

我有一个串行设备连接到我的Linux PC的USB,我需要不断地从中读取数据并进行处理。 当我使用openfd,xxx时,虽然1{readfd,xx}它可以工作,但我丢失了超过60%的数据

是否有更好的技术可以减少数据丢失

附录
波特率是115200。我们必须每秒至少收到10包,但我们只收到两包。。数据包大小为22字节。代码正是第二条注释中的代码

是的,您需要指定更多。我假设您正在尝试从串行端口读取数据。这是我几年前使用的一些代码:这是一个串行到USB设备。插入我的USB端口,创建/dev/ttyACM0设备。顺便说一下,我使用的方法与您链接的代码完全相同。但问题是,存在着巨大的数据丢失。我想应该有一个触发器,当任何数据可用时会打开,这样我就可以将数据收集到阵列中并发送到处理模块。请描述数据丢失情况。波特率是多少?每秒或每分钟发送多少数据?您的实际代码是什么,每次读取需要多少字节?多久发布一次read?有没有更好的技术…-您需要首先提供一个基线。波特率是115200,我们必须每秒至少接收10个数据包,但我们只能收到两个。。数据包大小为22字节。代码正是第二条注释中的代码。