2024年5月10日发(作者:)

串口调试助手的十六进制发送与字符串发送

两天调试一个zigbee模块,要求命令要求使用16进制格式发送给模块。

用串口助手的16进制发送功能控制zigbee,换单片机发送怎么试都不好用,只知道

是数据格式转换有问题,一直没搞明白串口助手的16进制发送是怎么发的,直到网上

看到一篇文章,下边直接复制过来了。

在使用串口发送数据时可以选择字符串发送或者十六进制发送,通常

情况下我们习惯选用字符串发送数据。关于两者的区别,需要从计算机

存储数据的格式说起。

在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)

在计算机中用 0000 0001(2)来表示。我们在用串口发送数据的时候

首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照二进

制的方式一位一位的发送出去。

例如我们要发送一串数据“A852A91A”,以字符串和十六

进制两种方式发送:

(1)字符串发送

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

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

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

编号

数据内容

编号

数据内容

0

1

2

3

4

5

6

7

A

8

5

2

0

1

0

1

8

9

10

11

12

13

14

15

0

0

0

0

A

9

1

A

(2)十六进制发送数据

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

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

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

编号

0

1

2

3

数据内容

A8

52

01

01

编号

4

5

6

7

数据内容

00

00

A9

1A

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