Debian自动超时中的串行通信

时间:2012-02-01 19:57:00

标签: c linux serial-port debian posix

我在运行ARM 9架构的TS-7400主板上使用3.1 Sarge,内核2.4.26。 我正在使用POSIX库的终结点和fcntl。

我正在编写一个程序,通过串口在2个嵌入式设备之间进行通信。该程序使用POSIX超时标志VTIME并成功运行Ubuntu 10.1但它没有超时板。如果在一段时间后没有响应,我需要程序尝试重新发送命令。我知道电路板第一次传输正常,但程序锁定等待响应。我在延迟模式下运行串行,因此它将在read()中等待,直到收到至少1个字节或者VTIME定义的.1秒已经过去。

问题是什么,或者如果VTIME在这个内核中不起作用,另一种方法是什么?

1 个答案:

答案 0 :(得分:0)

调查select()系统调用。这将允许您在有实际读取内容时执行读取,而不是等待.1秒,希望会出现一些内容。如果这应该是代码的直接端口,那么这可能不适合做。

这是另一种选择......