在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了所谓的ASCII编码,统一规定了上述常用符号用哪些二进制数来表示.
A在ascii中定义为01000001,也就是十进制65,有了这个标准后,当我们输入A时,计算机就可以通过ascii码知道输入的字符的二进制编码是01000001。而没有这样的标准,我们就必须自己想办法告诉计算机我们输入了一个A;没有这样的标准,我们在别的机器上就需要重新编码以告诉计算机我们要输入A。ascii码指的不是十进制,是二进制。只是用十进制表示习惯一点罢了,比如在ascii码中,A的二进制编码为01000001,如果用十进制表示是65,用十六进制表示就是41H
下面摘录自http://www.51hei.com/bbs/dpj-22296-1.html
ASCII值
|
控制字符
|
ASCII值
|
字符
|
ASCII值
|
字符
|
ASCII值
|
字符
|
000
|
NUL
|
032
|
(space)
|
064
|
@
|
096
|
’
|
001
|
SOH
|
033
|
!
|
065
|
A
|
097
|
a
|
002
|
STX
|
034
|
"
|
066
|
B
|
098
|
b
|
003
|
ETX
|
035
|
#
|
067
|
C
|
099
|
c
|
004
|
EOT
|
036
|
$
|
068
|
D
|
100
|
d
|
005
|
END
|
037
|
%
|
069
|
E
|
101
|
e
|
006
|
ACK
|
038
|
&
|
070
|
F
|
102
|
f
|
007
|
BEL
|
039
|
'
|
071
|
G
|
103
|
g
|
008
|
BS
|
040
|
(
|
072
|
H
|
104
|
h
|
009
|
HT
|
041
|
)
|
073
|
I
|
105
|
i
|
010
|
LF
|
042
|
*
|
074
|
J
|
106
|
j
|
011
|
VT
|
043
|
+
|
075
|
K
|
107
|
k
|
012
|
FF
|
044
|
,
|
076
|
L
|
108
|
l
|
013
|
CR
|
045
|
-
|
077
|
M
|
109
|
m
|
014
|
SO
|
046
|
.
|
078
|
N
|
110
|
n
|
015
|
SI
|
047
|
/
|
079
|
O
|
111
|
o
|
016
|
DLE
|
048
|
0
|
080
|
P
|
112
|
p
|
017
|
DC1
|
049
|
1
|
081
|
Q
|
113
|
q
|
018
|
DC2
|
050
|
2
|
082
|
R
|
114
|
r
|
019
|
DC3
|
051
|
3
|
083
|
S
|
115
|
s
|
020
|
DC4
|
052
|
4
|
084
|
T
|
116
|
t
|
021
|
NAK
|
053
|
5
|
085
|
U
|
117
|
u
|
022
|
SYN
|
054
|
6
|
086
|
V
|
118
|
v
|
023
|
ETB
|
055
|
7
|
087
|
W
|
119
|
w
|
024
|
CAN
|
056
|
8
|
088
|
X
|
120
|
x
|
025
|
EM
|
057
|
9
|
089
|
Y
|
121
|
y
|
026
|
SUB
|
058
|
:
|
090
|
Z
|
122
|
z
|
027
|
ESC
|
059
|
;
|
091
|
[
|
123
|
{
|
028
|
FS
|
060
|
<
|
092
|
\
|
124
|
|
|
029
|
GS
|
061
|
=
|
093
|
125
|
}
| |
030
|
RS
|
062
|
>
|
094
|
^
|
126
|
~
|
031
|
US
|
063
|
?
|
095
|
_
|
127
|
DEL
|
串口发送一帧数据时,两个字节的间隔时间是多少?
波特率:发送二进制数据位的速率,习惯上用 baud 表示,即我们发送一位二进制数据的持续时间=1/baud。
如果波特率为9600,发送一个位需要的时间为1/9600s=0.0001042s=0.1042ms,这里按数据位为8位,停止位为2位,
加起来就是10位,10个位发送所需的时间为:0.1042*10ms = 1.042ms,如果我要发送10个字节的数据,那发送这10个字节数据给接收方需要 的时间为:10*1.042ms = 10.42ms,这是算实际的发送10个字节的数据所需要的时间。我们在接收方接收数据时可以
把时间再加宽一些,让它有一点余量。让接收方能稳定的把数据从发送方接手过来,可以加个5ms,或更宽一点10ms,
加上发送10个字节所花的时间,就是15ms或20ms。