我正在尝试在C程序中设置串口的特殊字符。我能找到除^的代码之外的所有十六进制代码? (控制+问号)用于擦除。
必需的设置:
intr = ^C; quit = ^\; erase = ^?; kill = ^X; 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 = 5;
设置特殊字符:
struct termios newtio;
newtio.c_cc[VMIN]=1;
newtio.c_cc[VTIME]=5;
newtio.c_cc[VINTR]= 0x03;
newtio.c_cc[VQUIT] = 0x1c;
newtio.c_cc[VKILL] = 0x18;
newtio.c_cc[VEOF] = 0x04;
newtio.c_cc[VEOL] = 0;
newtio.c_cc[VEOL2] = 0;
newtio.c_cc[VSWTC] = 0;
newtio.c_cc[VSTART] = 0x11;
newtio.c_cc[VSTOP] = 0x13;
newtio.c_cc[VSUSP] = 0x1A;
newtio.c_cc[VREPRINT] = 0x12;
newtio.c_cc[VWERASE] = 0x17;
newtio.c_cc[VLNEXT] = 0x16;
newtio.c_cc[VDISCARD] = 0x0f;
答案 0 :(得分:5)
$ od -c <<< ^?
0000000 177 \n
0000002
$
所以,0x7f
。
答案 1 :(得分:4)
看起来像是十进制的127。见Wikipedia
答案 2 :(得分:2)
通常是&lt; - Backspace (0x08
)或 DEL (0x7f
)。由于退格几乎总是呈现为^H
( CTRL H ),我建议0x7f
是尝试的。