串口(调试助手)发送数据——字符串发送与十六进制发送的区别
2014-07-19 21:30
330 查看
转自:http://blog.csdn.net/wityy/article/details/8234739
在使用串口发送数据时可以选择字符串发送或者十六进制发送,通常情况下我们习惯选用字符串发送数据。关于两者的区别,需要从计算机存储数据的格式说起。
在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示。我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照二进制的方式一位一位的发送出去。
例如我们要发送一串数据“A852010100000000A91A”,以字符串和十六进制两种方式发送:
(1)字符串发送
串口以字符串发送数据,首先将字符串转化为二进制,格式如下:
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位)形式将数据发送出去。
串口接收的数据格式如下:
(2)十六进制发送数据
串口以十六进制发送数据,首先将数据转化为:
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位)形式将数据发送出去。
串口接收的数据格式如下:
仔细对照接收结果就很容易明白字符串发送和十六进制发送的区别了。
在使用串口发送数据时可以选择字符串发送或者十六进制发送,通常情况下我们习惯选用字符串发送数据。关于两者的区别,需要从计算机存储数据的格式说起。
在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示。我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照二进制的方式一位一位的发送出去。
例如我们要发送一串数据“A852010100000000A91A”,以字符串和十六进制两种方式发送:
(1)字符串发送
串口以字符串发送数据,首先将字符串转化为二进制,格式如下:
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 | 1A |
相关文章推荐
- 串口发送数据——字符串发送与十六进制发送的区别
- 串口发送数据——字符串发送与十六进制发送的区别
- 串口发送数据——字符串发送与十六进制发送的区别
- 串口发送数据——字符串发送与十六进制发送的区别
- 举例说明串口发送数据——字符串发送与十六进制发送的区别
- 串口发送数据——字符串发送与十六进制发送的区别
- 举例说明串口发送数据——字符串发送与十六进制发送的区别
- 串口发送数据——字符串发送与十六进制发送的区别
- STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和串口只发送数据不能接收数据问题
- C#串口编程问题:一个测试数据怎么拆分成2个字符串,做了2次发送?
- QT 串口以十六进制发送数据
- QT串口发送十六进制数据接收串口数据并十六进制显示
- 串口控件发送数据初始化设置(MFC-串口控件发送字符串)
- STM32F4 串口实验中收不到超级终端发送的数据,调试工具却可以
- 使用python在openwrt下操作串口发送十六进制数据
- double型数据转字符串后通过MCU串口发送
- Stm32串口发送字符串数据
- STM32F4 串口实验中收不到超级终端发送的数据,调试工具却可以
- STM32F4 串口实验中收不到超级终端发送的数据,调试工具却可以
- STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和不能接收数据问题讨论