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

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

(1)字符串发送

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

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

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

附转换:

//转换每一个字符为正真的16进制数值

char Widget::ConvertHexChar(char ch)

{

if((ch >= '0') && (ch <= '9'))

return ch-0x30;

else if((ch >= 'A') && (ch <= 'F'))

return ch-'A'+10;

else if((ch >= 'a') && (ch <= 'f'))

return ch-'a'+10;

else return (-1);

}

java串口发送16进制_串口发送数据——字符串发送与十六进制发送的区别相关推荐

  1. python3串口通信16进制_STM32串口通信——16进制数形式

    一.为什么采用16进制数形式? 首先,需要解释一下串口发送的数据都是unsigned char类型的,说成字符和16进制形式,只是我们采用何种方式展示这些数据.字符形式就是把16进制数通过ASCII表 ...

  2. java 8位16进制_Java二、八、十、十六进制介绍

    1.说明 在Java中整数有四种表示方式, 分别为十进制,二进制,八进制,十六进制, 其中十进制就是平常最熟悉,使用最多的进制: 二进制是在计算机中使用最多的进制, 八进制和十六进制都是基于二进制的, ...

  3. java串口发送16进制数据_MFC串口通信发送16进制数据的方法

    本文实例为大家分享了MFC串口通信发送16进制数据的具体代码,供大家参考,具体内容如下 MFC串口通信会使用m_mscomm控件. 发送数据一般是在edit control 里输入自己想发送的内容,然 ...

  4. python3.6串口编程实例_Python3 串口接收与发送16进制数据包的实例

    Python3 串口接收与发送16进制数据包的实例 如下所示: import serial import string import binascii s=serial.Serial('com4',9 ...

  5. matlab上位机串口通信中如何发送16进制数,而不是当做ASCII字符发送(已实测成功)

    转载 (找了很长时间,朋友帮忙找到了发送方法) https://zhidao.baidu.com/question/383761631.html 用matlab发送16进制数据,可以用fwrite直接 ...

  6. esp32的uart串口发送16进制通信指令调用实例

    esp32的uart串口发送16进制通信指令调用实例 简介 最近想用esp32通过uart发送的16进制指令来控制一个语言播放模块,记录一下调用uart的过程,请大佬斧正.比较愚笨,过程中踩了很多坑, ...

  7. STM32串口发送16进制数据

    方法一(用printf函数) 下面演示两个示例 //说明:用u8或unsigned char都能正常发送//示例 1 u8 send1=0x55; printf("%c",send ...

  8. 嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)

    嵌入式linux编程过成中用到zigbee模块 zigbee从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数 (提取特定字符串+字符串转16进制) #include<st ...

  9. 串口调试助手 发送16进制与现实16进制数据

    话不多说,直接干货. 使用串口助手发送16进制数据: 如图所示:第一步,选中16进制发送. 第二步:输入你要发送的数据(所有的16进制数据去掉0x符号) 第三步:点击16进制显示 第四步:查看返回值 ...

最新文章

  1. Linux2.6--Linus电梯
  2. Emit动态代理.NetCore迁移之旅
  3. print2flashwindows7旗舰版下载哪一个_JUJUMAO_MSDN原版 win 7 二合一 旗舰版32位 64位原版ISO镜像...
  4. CString char BSTR 转换
  5. 袁春风 计算机组成原理 chap4,精品计算机组成原理 [袁春风]chap4homework.pdf
  6. Wke阅读日记1--简介
  7. java怎么打不开vos_JAVA如何调用VOS2009接口
  8. 最新全国省市区县乡镇街道行政区划数据提取(2022年)
  9. Chrome和Chromium的区别
  10. R语言实现行为特征分析(Behavioral Profile,BP)+层次聚类分析(hierarchical agglomerative cluster analysis,HAC)
  11. php 字符串 strpos,PHP字符串处理函数:strpos() -- 内置函数
  12. JVM内存和垃圾回收-02.类加载子系统
  13. 我学历不高,怎样找前端的工作?
  14. 农业借助拼多多的东风实现数字化-纽黑文教育
  15. android使用连连支付进行银行卡支付
  16. 投入OJ的怀抱~~~
  17. 基于hive数仓的游戏指标分析
  18. 第一次买了自己的云服务器用来折腾些什么
  19. matlab接触刚度编程,关于接触刚度的定义
  20. 天津天地伟业程序员怎么样_香港警务处总警司丘绍箕莅临天地伟业考察调研,点赞智慧警务全系列解决方案...

热门文章

  1. mysql创建表为什么第二次,mysql当我加入同一个表两次聚合是错误的
  2. 解决全网90%以上的日期格式转换、日期序列等骚操作问题
  3. 一道题弄明白二维数组的指针
  4. Linux 下获取本机所有网卡 以及 网卡对应ip 列表
  5. g-gdb工具使用图谱(持续更新)
  6. C语言的单链表逆序和指定范围逆序
  7. Winder摆杆不稳除了PID还可能的原因
  8. git更新代码报错,error: The following untracked working tree files would be overwritten by ch
  9. Tomcat虚拟目录设置
  10. WPF判断两个时间大小避免误差