我现在用如下一组数据类型为字符串
68 02 00 00 00 00 00 68 81 17 52 c3 33 33 33 33 33 33 33 33 33 33 33 33
33 33 33 33 33 33 33 33 dd 58 16
我把这一组数据发到掌抄的时候,所结收到的第一个字节为54不知道为什么,请帮忙解决。
68 02 00 00 00 00 00 68 81 17 52 c3 33 33 33 33 33 33 33 33 33 33 33 33
33 33 33 33 33 33 33 33 dd 58 16
我把这一组数据发到掌抄的时候,所结收到的第一个字节为54不知道为什么,请帮忙解决。
我以前用spcomm是有两个属性一个是..out..和..in..什么的,把这两个属性都设置成false就行了,这个没用过,你可以试以下
var
outstring:string;
begin
outstring:='6802000000000068811752c33333333333333333333333333333333333333333dd5816'
Mscomm1.PortOpen:=true;
MSCOMM1.OutBufferCount:=0;
MSCOMM1.Output:=outstring;
end;
54 = 0x36, 也就是ascii的 6, 也就是你发送的第一个字符
TCharArray=array[0..1] of Char;
PCharArray=^TCharArray;procedure TForm1.WriteCom(const Buf:array of Char;
var
V:Variant;
P:PCharArray;
i:Integer;
begin
V:= VarArrayCreate([Low(Buf), High(Buf)], varChar);
P := VarArrayLock(V);
try
for i:=Low(Buf) to High(Buf) do P^[i]:=Buf[i];
finally
VarArrayUnlock(A);
end;
MsComm1.OutPut:=V;
end;function TForm1.ReadCom(var Buf):Integer;
var
V:Variant;
P:PCharArray;
i:Integer;
begin
V:=MsComm1.Input;
P := VarArrayLock(V);
try
for i:=VarArrayLowBound(V,1) to VarArrayHighBound(V,1) do
TCharArray(Buf)[i-VarArrayLowBound(V,1)]:=P^[i];
finally
VarArrayUnlock(A);
end;
end;
http://www.18show.cn/SpecialArticleInfo.aspx?ArticleID=2766