在使用串口发送数据时可以选择字符串发送或者十六进制发送,通常情况下我们习惯选用字符串发送数据。关于两者的区别,需要从计算机存储数据的格式说起。 在计算机中,数据是以二进制的形式存储的,例如十进制 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 |
仔细对照接收结果就很容易明白字符串发送和十六进制发送的区别了。
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|