知識社群登入
Serial Programming
by 艾鍗學院, 2012-10-15 15:12, 人氣(2249)
Serial Programming 


終端機介面又稱為TTY介面,用來讓Linux系統透過RS-232串列埠連接數據機,通過電話線路與遠端的電腦系統相連接。終端機介面有二種模式:正規(canonical)模式和非正規(non-canonical)模式。

模式說明
正規模式又稱為cooked模式。在這種模式中,終端設備會處理特殊字元,且會以一次一列的方式將輸入傳給應用程式。例如Linux的shell指令。
非正規模式又稱為raw模式。在這種模式中,終端設備不會處理特殊字元,且會以一次一個字元的方式將輸入傳給應用程式。例如在Linux使用vim編輯程式。

VMIN & VTIME

http://sites.xms.com.tw/board.php?courseID=143&f=doc&folderID=1224&cid=8627


=====

NAME

stty - change and print terminal line settings

SYNOPSIS

stty [-F DEVICE] [--file=DEVICE] [SETTING]...
stty [-F DEVICE] [--file=DEVICE] [-a|--all]
stty [-F DEVICE] [--file=DEVICE] [-g|--save]

DESCRIPTION

Print or change terminal characteristics.

-a, --all
print all current settings in human-readable form
-g, --save
print all current settings in a stty-readable form
-F, --file=DEVICE
open and use the specified DEVICE instead of stdin
--help
display this help and exit
--version
output version information and exit

Optional - before SETTING indicates negation. An * marks non-POSIX settings. The underlying system defines which settings are available.

Special characters:

* dsusp CHAR
CHAR will send a terminal stop signal once input flushed
eof CHAR
CHAR will send an end of file (terminate the input)
eol CHAR
CHAR will end the line
* eol2 CHAR
alternate CHAR for ending the line
erase CHAR
CHAR will erase the last character typed
intr CHAR
CHAR will send an interrupt signal
kill CHAR
CHAR will erase the current line
* lnext CHAR
CHAR will enter the next character quoted
quit CHAR
CHAR will send a quit signal
* rprnt CHAR
CHAR will redraw the current line
start CHAR
CHAR will restart the output after stopping it
stop CHAR
CHAR will stop the output
susp CHAR
CHAR will send a terminal stop signal
* swtch CHAR
CHAR will switch to a different shell layer
* werase CHAR
CHAR will erase the last word typed

Special settings:

N
set the input and output speeds to N bauds
* cols N
tell the kernel that the terminal has N columns
* columns N
same as cols N
ispeed N
set the input speed to N
* line N
use line discipline N
min N
with -icanon, set N characters minimum for a completed read
ospeed N
set the output speed to N
* rows N
tell the kernel that the terminal has N rows
* size
print the number of rows and columns according to the kernel
speed
print the terminal speed
time N
with -icanon, set read timeout of N tenths of a second

Control settings:

[-]clocal
disable modem control signals
[-]cread
allow input to be received
* [-]crtscts
enable RTS/CTS handshaking
csN
set character size to N bits, N in [5..8]
[-]cstopb
use two stop bits per character (one with `-')
[-]hup
send a hangup signal when the last process closes the tty
[-]hupcl
same as [-]hup
[-]parenb
generate parity bit in output and expect parity bit in input
[-]parodd
set odd parity (even with `-')

Input settings:

[-]brkint
breaks cause an interrupt signal
[-]icrnl
translate carriage return to newline
[-]ignbrk
ignore break characters
[-]igncr
ignore carriage return
[-]ignpar
ignore characters with parity errors
* [-]imaxbel
beep and do not flush a full input buffer on a character
[-]inlcr
translate newline to carriage return
[-]inpck
enable input parity checking
[-]istrip
clear high (8th) bit of input characters
* [-]iuclc
translate uppercase characters to lowercase
* [-]ixany
let any character restart output, not only start character
[-]ixoff
enable sending of start/stop characters
[-]ixon
enable XON/XOFF flow control
[-]parmrk
mark parity errors (with a 255-0-character sequence)
[-]tandem
same as [-]ixoff

Output settings:

* bsN
backspace delay style, N in [0..1]
* crN
carriage return delay style, N in [0..3]
* ffN
form feed delay style, N in [0..1]
* nlN
newline delay style, N in [0..1]
* [-]ocrnl
translate carriage return to newline
* [-]ofdel
use delete characters for fill instead of null characters
* [-]ofill
use fill (padding) characters instead of timing for delays
* [-]olcuc
translate lowercase characters to uppercase
* [-]onlcr
translate newline to carriage return-newline
* [-]onlret
newline performs a carriage return
* [-]onocr
do not print carriage returns in the first column
[-]opost
postprocess output
* tabN
horizontal tab delay style, N in [0..3]
* tabs
same as tab0
* -tabs
same as tab3
* vtN
vertical tab delay style, N in [0..1]

Local settings:

[-]crterase
echo erase characters as backspace-space-backspace
* crtkill
kill all line by obeying the echoprt and echoe settings
* -crtkill
kill all line by obeying the echoctl and echok settings
* [-]ctlecho
echo control characters in hat notation (`^c')
[-]echo
echo input characters
* [-]echoctl
same as [-]ctlecho
[-]echoe
same as [-]crterase
[-]echok
echo a newline after a kill character
* [-]echoke
same as [-]crtkill
[-]echonl
echo newline even if not echoing other characters
* [-]echoprt
echo erased characters backward, between `\' and '/'
[-]icanon
enable erase, kill, werase, and rprnt special characters
[-]iexten
enable non-POSIX special characters
[-]isig
enable interrupt, quit, and suspend special characters
[-]noflsh
disable flushing after interrupt and quit special characters
* [-]prterase
same as [-]echoprt
* [-]tostop
stop background jobs that try to write to the terminal
* [-]xcase
with icanon, escape with `\' for uppercase characters

Combination settings:

* [-]LCASE
same as [-]lcase
cbreak
same as -icanon
-cbreak
same as icanon
cooked
same as brkint ignpar istrip icrnl ixon opost isig icanon, eof and eol characters to their default values
-cooked
same as raw
crt
same as echoe echoctl echoke
dec
same as echoe echoctl echoke -ixany intr ^c erase 0177 kill ^u
* [-]decctlq
same as [-]ixany
ek
erase and kill characters to their default values
evenp
same as parenb -parodd cs7
-evenp
same as -parenb cs8
* [-]lcase
same as xcase iuclc olcuc
litout
same as -parenb -istrip -opost cs8
-litout
same as parenb istrip opost cs7
nl
same as -icrnl -onlcr
-nl
same as icrnl -inlcr -igncr onlcr -ocrnl -onlret
oddp
same as parenb parodd cs7
-oddp
same as -parenb cs8
[-]parity
same as [-]evenp
pass8
same as -parenb -istrip cs8
-pass8
same as parenb istrip cs7
raw
same as -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -opost -isig -icanon -xcase min 1 time 0
-raw
same as cooked
sane
same as cread -ignbrk brkint -inlcr -igncr icrnl -ixoff -iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke, all special characters to their default values.

Handle the tty line connected to standard input. Without arguments, prints baud rate, line discipline, and deviations from stty sane. In settings, CHAR is taken literally, or coded as in ^c, 0x37, 0177 or 127; special values ^- or undef used to disable special characters.

SEE ALSO

The full documentation for stty is maintained as a Texinfo manual. If the info and stty programs are properly installed at your site, the command
info stty

should give you access to the complete manual.