桌面应用很多离不开串口通讯,这里记录一下Delphi两种版本的串口开发,这两个版本的串口控件可以在我的资源中找到 https://download.csdn.net/download/u014608435/59274823
1.Delphi2007
procedure TfrmMain.Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);
var
rbuf: array[0..2048 - 1] of byte;
tmpRec: string;
i: Integer;
begin
//16进制
for i := 0 to BufferLength - 1 do
begin
tmpRec := tmpRec + IntToHex(Ord(rbuf[i]), 2);
end;
//ascii
for i := 0 to BufferLength - 1 do
begin
tmpRec := tmpRec + chr(rbuf[i]);
end;
end;
2.Delphi XE10
procedure TfrmMain.Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);
var
rbuf: array[0..2048 - 1] of byte;
tmpRec: AnsiString;
i: Integer;
begin
tmpRec := '';
zeromemory(@rbuf, 2048);
move(Buffer^, PAnsiChar(@rbuf)^, BufferLength);
// 16进制转码
for i := 0 to BufferLength - 1 do
begin
tmpRec := tmpRec + IntToHex(Ord(rbuf[i]), 2);
end;
if tmpRec <> '' then
begin
if Pos('68', tmpRec) = 0 then
begin
tmpRec := '';
// 说明不是16进制,使用ascii转码
for i := 0 to BufferLength - 1 do
begin
tmpRec := tmpRec + AnsiChar(chr(rbuf[i]));
end;
end;
end;
end;