
这个里面写的比较清楚
http://moodle.hsshn.pudong-edu.sh.cn/file.php/99/resource/ASCII.htm
很多字符能否打印和编码方式有关.你说的能打印0-31的DOS,是因为DOS当时也没有更多的编码,把ASCII中不能输出的部分放置了一些符号.
ASCII规定0-31为控制字符,此外结束到127,127以后的没有规定.
具体的可以在linux里面man ascii
不要把DOS的错误当成标准......
首先,如果我们不是开发串口driver的,而只是用串口来传入自己定义格式的数据,然后根据得到的数据做相关的解释,我们需要设置这些,options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG) /*Input*/
options.c_oflag &= ~OPOST /*Output*/
然后就是重点,如何设置software flow control,因为自己定义的数据格式中,一般会有标识标识数据开始和结束,如何定义,请看下面:
/* open soft flow control */
options.c_iflag |= (IXON | IXOFF | IXANY)
/* flow start with 0x11, end with 0x13 */
options.c_cc[VSTART] = 0x11
options.c_cc[VSTOP] = 0x13
这样,你往串口发送数据时,串口就会认出0x11和0x13之间的数据了。当然,如果你传输的不是ascii,你得控制数据中不会出现0x11和0x13。
第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCⅡ 字符
0 NUL
1 SOH
2 STX
3 ETX
4 EOX
5 ENQ
6 ACK
7 BEL
8 BS
9 TAB
10 LF
11 VT
12 FF
13 CR
14 SO
15 SI
16 DLE
17 DC1
18 DC2
19 DC3
20 DC4
21 NAK
22 SYN
23 ETB
24 CAN
25 EM
26 SUM
27 ESC
28 FS
29 GS
30 RS
31 US
32 空格
33 !
34 "
35 #
36 $
37 %
38 &
39 ''
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59
60 <
61 =
62 >
63 ?
64 @
65 A
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
91 [
92 \
93 ]
94 ^
95 _
96 、
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n
111 o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z
123 {
124 |
125 }
126 ~
127 DEL
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)