首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

初学者这样的串口接收数据程序该怎么写

2012-03-24 
菜鸟求教:这样的串口接收数据程序该如何写?命令的格式为:FE开头,中间数据长度可变,以FD结尾,请问用MSCOMM

菜鸟求教:这样的串口接收数据程序该如何写?
命令的格式为:
FE开头   ,   中间数据长度可变,以FD结尾,
请问用MSCOMM接收并处理这样的命令格式的数据?我不知道怎样判断命令的起始和结束。所以在此虚心求教各位,最好有例子。谢谢。

[解决办法]
procedure TForm1.MSComm1Comm(Sender: TObject);

var time1,time2:tdatetime;
D:REAL;
d1,d2,d3,d4,d5,d6:real;

b:variant; dd:array[1..100]of byte; p:array[1..100]of byte;
E:ARRAY[0..9]OF DOUBLE;
i,j,m0:integer;
ss1, ss2:string; aa,bb,cc:integer;
mm,nn:string; oo:integer; s1:string;
begin


aa:=GetTickCount() ;
oo:=0;

b:=mscomm1.Input ;

j:=vararrayhighbound(b,1);

ss2:= ' ';
for i:=1 to vararrayhighbound(b,1) do
begin
dd[i]:=b[i];
ss2:=ss2 + ' '+ inttohex(dd[i],2);
end;

for i:=0 to 50+5 do
begin
if (dd[i+1]> =48)and (dd[i+1] <=57) then p[i]:=dd[i+1]-48;
if (dd[i+1]> 57) then p[i]:=dd[i+1]-65+10;
end;
这是从我做的电子秤程序里截的。
p[i]就是从串口得到的值。SS2是从串口得到的值的字符串形式,你可以用EDIT1。TEXT:=SS2
来查看一下。
[解决办法]
我觉得没有必要判断开头和结尾。J是接收数据的长度。SS[1]=‘F’SS[2]=‘E’就是开头。SS[J-1]=‘F’SS[J]=‘D’就是结尾。

当然你也可以校验一下。

热点排行