1

我正在开发一个 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,似乎在所有情况下都可以正常工作。

非常感谢任何帮助。

最好的问候,伯特

4

1 回答 1

1

答案是:

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

于 2011-03-02T20:44:44.667 回答