lihuasoft(学习低调做人) ---在哪?
这是上午你给我的代码,我只是增加了四句,但结果却很有意思,在窗体上显示的是正确的结果:A3B0B5E3D5FB0909,A3B1A3B0B5E3D5FB0909,但我通过 "串口调试助手 "来接收时,显示的结果却是: "30B5E3D5FB0909,3130B5E3D5FB0909,这是为什么呀?
function MyHexStr(X : string) : string;
begin
case Length(X) of
14 : result := 'A ' + Copy(X,1,1) + 'B ' + Copy(X,2,1) + Copy(X,3,MaxInt);
else result := 'A ' + Copy(X,1,1) + 'B ' + Copy(X,2,1) + 'A ' + Copy(X,3,1) + 'B ' + Copy(X,4,1) + Copy(X,5,MaxInt);
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
S, NiYaoDe : string;
begin
S := '30B5E3D5FB0909 ';
NiYaoDe := MyHexStr(S);
Tem := Length(s); //这两行是我自己加的
Comm1.WriteCommData(Pchar(s),Tem);
ShowMessage(NiYaoDe);
S := '3130B5E3D5FB0909 ';
NiYaoDe := MyHexStr(S);
ShowMessage(NiYaoDe);
Tem := Length(s); //这两行是我自己加的
Comm1.WriteCommData(Pchar(s),Tem);
end;
[解决办法]
姐姐你传的是s不是NiYaoDe
Comm1.WriteCommData(Pchar(NiYaoDe),Tem);
~~ ~~~~~~~