1

ARMLinux組み込みデバイスで実行されているシリアルポートをリッスンするCプログラムに取り組んでいます。

他のデータセットは正常に機能しますが、特定のデータセットを送信すると、そのセットの先頭が切り捨てられます。切り捨てられるのは次のとおりです(ターゲットで実行されているslsniffプログラムの出力)。

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

私は、これがテキストETXの終わりを切り捨てるために使用しているいくつかのtermios定数によって引き起こされていることをかなり確信で​​きるように十分にデバッグしました。

今、私は次のことに取り組んでいます:

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 */

設定された区切り文字はCR0x0dであり、すべての場合に正常に機能するようです。

どんな助けでも大歓迎です。

よろしく、バート

4

1 に答える 1

1

答えは:

http://linux.die.net/man/3/termiosで説明されている cfmakeraw

于 2011-03-02T20:44:44.667 に答える