数据通信--ASCII码通信&16进制通信的区别

16进制通信一般用于网络传输等的通信上,传输效率高、数据量大是二进制通信。

ASCII码通信一般用与串口通信等通信上,数据量小、易于处理、便于调试,它虽然是文本模式,但本质仍然是二进制通信。


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

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

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

字符串发送

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

0000 1010     0000 1000    0000 0110    0000 0010    0000 0000   0000 0001   0000 0000    0000 0001 

             A                    8                   5                  2                   0                 1                   0                   1

0000 0000     0000 0000   0000 0000    0000 0000     0000 1010    0000 1001    0000 0001    0000 1010

               0                    0                  0                   0                    A                   9                   1                   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

十六进制发送数据

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

1010 1000     0110 0010    0000 0001     0000 0001    0000 0000    0000 0000     1010 1001     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

1

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

 

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值