使用 serial port , tty device 做傳輸的時候,測試時,想用 echo. cat 做基本傳送測試。
常常會遇到 自動送出 0x0d, 或是送出0x0d 時,被加入一個 0x0d 的現象。
這是因為 linux tty 是 terminal 裝置,所以遇到特殊的控制字元時,會自動做特殊轉換。 轉換。
就用 stty 來設定,叫他不要自動轉換舊可以..
看看現在tty 的設定狀況:
# stty -F /dev/ttyS1 speed 9600 baud; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -brkint -imaxbel變更,不要處理 nl, cr 的轉換
# stty -F /dev/ttyS1 -onlcr
ref:
這一篇 說,直接指定 raw mode 舊可以:
# stty -F /dev/ttyS1 raw
另外,echo command 也會自動加上 0x0d,不要他送的話,要加上 -n option:
# echo -n abc
附帶,要送非 ascii,也就是用 hex code 來寫,要用 -e
# echo -en '\x12\x34'
沒有留言:
張貼留言