串口发送数据的形式:字符串和十六进制发送的区别

[复制链接]
查看111 | 回复0 | 2021-12-7 17:12:13 | 显示全部楼层 |阅读模式

在使用串口发送数据时可以选择字符串发送或者十六进制发送,通常情况下我们习惯选用字符串发送数据。关于两者的区别,需要从计算机存储数据的格式说起。

       在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 00000001(2)来表示。我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照二进制的方式一位一位的发送出去。

例如我们要发送一串数据“A852010100000000A91A”,以字符串和十六进制两种方式发送:

(1)字符串发送

         串口以字符串发送数据,首先将字符串转化为二进制,格式如下:

        (A的ASCII码是65,十六进制是0x41,二进制内存为01000001)


01000001       ……  

             A

        然后按照8位(串口设置数据位为8位)形式将数据发送出去。

        串口接收的数据格式如下:



编号
数据内容
编号
数据内容
0
A
8
0
1
8
9
0
2
5
10
0
3
2
11
0
4
0
12
A
5
1
13
9
6
0
14
1
7
1
15
A


(2)十六进制发送数据

         串口以十六进制发送数据,首先将数据转化为:

          10101000    01100010    00000001    00000001   00000000   00000000    10101001    0001 1010

                0XA8           0X52              0X01             0X01             0X00            0X00             0XA9           0X1A

         然后按照8位(串口设置数据位为8位)形式将数据发送出去。

        串口接收的数据格式如下:


编号
数据内容
编号
数据内容
0
A8
4
00
1
52
5
00
2
01
6
A9
3
01
7
1A


         仔细对照接收结果就很容易明白字符串发送和十六进制发送的区别了。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则