对串口传过来的数据进行解码

klaiy 2002-05-08 03:14:25
如果数据是从另外一台计算机通过串口传过来,传过来的是一些16进制比如:
03 20 35 31 30 32 60 30 52 31 我要得到3051020021又该怎么办呢?
...全文
85 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
klaiy 2002-05-08
  • 打赏
  • 举报
回复
但我是把值存在了字符串变量中,如果不用字符串,应该用什么变量,谢谢
klaiy 2002-05-08
  • 打赏
  • 举报
回复
但我是把值存在了字符串变量中,如果不用字符串,应该用什么变量,谢谢
gzmhero 2002-05-08
  • 打赏
  • 举报
回复
如果是字符方式的"02","30"...等等,你只要读第二个,转换成数字就是你要的数据,如果是十六进制的02 30 40 等,你读到的本身就是一个整数,怎么处理都可以了。
klaiy 2002-05-08
  • 打赏
  • 举报
回复
空格没有用处的,只要16进制数
klaiy 2002-05-08
  • 打赏
  • 举报
回复
那读数又该怎么来读啊,就是16进制的数怎样读出,谢谢
DeathCat 2002-05-08
  • 打赏
  • 举报
回复
那么麻烦干什么。只需要得到最后一个字节中的东西就可以了啊。空格也是一样的。你不可能把空格仍了吧,那可是接收的数据,还不知到有没有用呢。
gzmhero 2002-05-08
  • 打赏
  • 举报
回复
看第九个数的末位,是a,就说明它有a条数据,每一条数据又有12个数,所以一次读出a*12*2个数据进行处理,然后进行下一个循环。
DeathCat 2002-05-08
  • 打赏
  • 举报
回复
没有搞懂,如果真的是这样只取10的余数,干嘛还要这样做啊。只需要取出第二个字节中的东西就可以了。干嘛还要加上第一个字节?
klaiy 2002-05-08
  • 打赏
  • 举报
回复
还可以更详细一点吗?还有就是它过来的数据是实时的发过来的,就是周期又该怎么办,谢谢
gzmhero 2002-05-08
  • 打赏
  • 举报
回复
清除空格不就行了么。trim()
只能一条一条分析。做个函数一次读一条的数据。分析放在函数里面。很简单的啊。
klaiy 2002-05-08
  • 打赏
  • 举报
回复
还有就是当看了有几条数据的时候,还每一条每一条的来分析啊,该怎么办啊?
klaiy 2002-05-08
  • 打赏
  • 举报
回复
谢谢了但我是用字符串来接收的,空格怎么办?
gzmhero 2002-05-08
  • 打赏
  • 举报
回复
哦搞错了,是16进制。应该是:
b=每数字
a=b;
a=a shr 4;
a=a shl 4;
a=b-a;a就是每个数字。
klaiy 2002-05-08
  • 打赏
  • 举报
回复
就是一台计算机向另外一台传数据,比如:
第一次:02 35 36 52 14 52 87 65
第二次:98 65 36 47 54 25 36 85
第三次:85 65 32 54 65 89 65 32
协议是:看第九个数(98)的末位,就是8,就说明它有8条数据,但每一条数据又有12个数,这该怎么解决,谢谢了
gzmhero 2002-05-08
  • 打赏
  • 举报
回复
要知道串口数据和你想要的数据的关系才行。就是通讯协议呀。如果想要你上面的关系很简单,除10取余就行了。
DeathCat 2002-05-08
  • 打赏
  • 举报
回复
你在多给几组数字好吗?
不过,你为什么不直接传送文本呢?用文本模式?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧