关于串口通信时ASCII码转换的问题:
将Edit中的内容转化成16进制的数据通过串口转发出去。如:
当Edit1.Text := '222222'时,串口发送的数据为 16H,16H,16H (三个字节)

解决方案 »

  1.   

    function HexToAscii(s: string): string;
    var
      i: integer;
    begin
      Result := EmptyStr;
      for i := 1 to Length(S) do
      begin
        if ((i mod 2) = 1) then
          Result := Result + Chr(StrToInt('0x' + Copy(S, i, 2)));
      end;
    end;
      

  2.   

    function StrToBin(const s: string):String;
    var
      i,len: integer;
    begin
      Result:='';
      len:=Length(s) div 2;
      if len=0 then
        exit;
      SetLength(Result,len);
      for i:=1 to len do
         Result[i]:=chr(ord(s[2*i-1])*10+ord(s[2*i]));
    end;