我正在研究一个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,似乎在所有情况下都能正常工作。
非常感谢任何帮助。
祝你好运, 伯特