|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2008-11-14 17:07:41
|
显示全部楼层
谢谢两位
shark 说的看起来更简单,可我不知道怎么先得到串口的二进制数据...
从没接触过上位机,更不要说Delphi了,现在想把一别人用Delphi写的串口调试工具改成自己需要的数据显示方式供自己调试单片机(串口用的是SPCOMM控件),边改边学,困难重重~~
先看看我现在是怎么么办的(方法很笨,高手看了不要笑):
原作者的程序中有一把接收的数据转为十六进制字符串的程序,我按我的理解在原作的基础上改的,假如最后得到的十六进制字符串为A
var
i:Integer
i:=StrToInt('$'+A);
Memo1.Text:=IntToStr(i);
这样的话要是一个字节还好说,我想把连续收到的3个单字节转换成十进制输出显示就显得麻烦了:
先定义一个字符串数组a[]保存收到的3个单字节数据;
i:=StrToInt('$'+a[0])*65536+StrToInt('$'+a[1])*256+StrToInt('$'+a[2]);
Memo1.Text:=IntToStr(i);
这样最后虽然得到了我要的结果,可怎么看怎么觉得太烦琐...
这段程序该怎么写?请朋友们指点一下,谢谢~ |
|