2011-03-02 56 views
1

我正在研究偵聽運行在ARM Linux嵌入式設備上的串行端口的C程序。由嵌入式設備上的termios截斷的串行數據

其他數據集可以正常工作,但是當我發送一組特定的數據時,集合的開頭會被截斷。什麼是截斷如下(在目標上運行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,這似乎是在所有情況下正常工作。

任何幫助非常感謝。

最好的問候, 伯特

回答