嵌入式设备上的termios截断的串行数据

时间:2011-03-02 20:29:12

标签: c embedded-linux termios

我正在研究一个C程序,它正在侦听在ARM Linux嵌入式设备上运行的串口。

其他数据集工作正常,但总是当我发送一组特定数据时,该集的开头会被截断。截断的是以下内容(目标上运行的slsniff程序输出):

Device --> ^ (094) { (123) <STX> (002) <BS> (008) <STX> (002) <NUL> (000) <NUL> (000) <STX> (002) <SOH> (001) <ETX> (003)

我已经调试足够相当确定这是由一些termios常量引起的,它使用文本末尾ETX来截断。

现在我到了:

struct termios t;

t.c_lflag &= ~(ICANON | IEXTEN | ECHO);
t.c_iflag &= ~ICRNL;
t.c_cc[VMIN] = 1;                   /* Character-at-a-time input */
t.c_cc[VTIME] = 0;                  /* with blocking */

设置的分隔符是CR 0x0d,似乎在所有情况下都能正常工作。

非常感谢任何帮助。

祝你好运, 伯特

1 个答案:

答案 0 :(得分:1)

答案是:

cfmakeraw,如http://linux.die.net/man/3/termios

所述