zoukankan      html  css  js  c++  java
  • 串口发送数据——字符串发送与十六进制发送的区别

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

            在计算机中,数据是以二进制的形式存储的,例如十进制 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

     (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位)形式将数据发送出去。

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

    编号

    数据内容

    编号

    数据内容

    0

    A8

    4

    00

    1

    52

    5

    00

    2

    01

    6

    A9

    3

    01

    7

    1A

  • 相关阅读:
    Java 深拷贝和浅拷贝 利用序列化实现深拷贝
    算法题005 剑指Offer面试题29 数组中出现次数超过一半的数字
    算法题003 斐波那契(Fibonacci)数列
    Android Sensors (4) 传感器使用最佳实践
    Android WebView使用基础
    Java 多线程(八) 线程状态图
    算法题006 判断两个链表是否相交
    Java 多线程(五) 多线程的同步
    算法题001 剑指Offer 面试题三:二维数组中的查找
    Android绘制基础及手写绘制实例
  • 原文地址:https://www.cnblogs.com/qiwu1314/p/9149903.html
Copyright © 2011-2022 走看看