bufID:array[1..10] of char;
tid:='07';
   for i:=1 to length(tid) do
   begin
        tidHex:=tidHex+intToHex(ord(tid[i]),1);
   end;
   strpcopy(@bufid,tidhex);
   rst:=WriteFile(comhand,bufID,length(bufid),wcount,nil);我要向串口以HEX写"07",但我用以上代码不成功,用下载的工具,在发送框里输入07,再把hex形式发送打上勾就成功,我要怎么写代码呢

解决方案 »

  1.   

    for i:=1 to length(tid) do
       begin
            tidHex:=tidHex+intToHex(ord(tid[i]),1);
       end;
    ================================================
       if Length(tid) mod 2 <>0 then tid:='0'+tid;
       for i:=1 to length(tid) do
       begin
            tidHex:=tidHex+char(StrToInt('$'+Copy(tid,i,2)));
            inc(i);
       end;
      

  2.   

    设备接收的数据一般都是以十六进制传递的。
    c++里有0x开头。如0x10   = 16(十进Zhi)
    delphi里用 $ 如 $20   = 32 (十进)在数据组里你要一个个的赋值。如
    bufID[0] := $10   //DLE
    bufID[1] := $31