串口收到的数据,怎么还原?高手进 ( 积分: 20 )

  • 主题发起人 主题发起人 国色天香
  • 开始时间 开始时间

国色天香

Unregistered / Unconfirmed
GUEST, unregistred user!
我用串口调试工具收到这么行数据:
15 10 07 14 50 00 07 86 08 71 30 08 4C 4A 08 00 F4 08 07 64 08 01 E8 08

怎么还原成可以看懂的字符呢?谢谢!
 
function TransChar(AChar: Char): Integer;
begin
if AChar in ['0'..'9'] then
Result := Ord(AChar) - Ord('0')
else
Result := 10 + Ord(AChar) - Ord('A');
end;

function HexToStr(AStr: string): string;
var
I: Integer;
CharValue: Word;
begin
Result := '';
Astr := StringReplace(Astr, ' ', '', [rfReplaceAll]);
for I := 1 to Trunc(Length(Astr) / 2) do
begin
Result := Result + ' ';
CharValue := TransChar(AStr[2 * I - 1]) * 16 + TransChar(AStr[2 * I]);
Result := Char(CharValue);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
ss: string;
Buffer, BufSize: string;
begin
//ss:='15 10 07 14 50 00 07 86 08 71 30 08 4C 4A 08 00 F4 08 07 64 08 01 E8 08';
//ss := 'C5BCCAC7D0A1B1BFB1BF';
ss := 'C5 BC CA C7 D0 A1 B1 BF B1 BF';
ss := HexToStr(ss);
showmessage(ss);
end;
 
呵呵,谢谢>
 
后退
顶部