SPCOMM中TComm.WriteCommData( pDataToWrite: PChar; dwSizeofDataToWrite: Word ): Bo

  • 主题发起人 主题发起人 wyb_506
  • 开始时间 开始时间
W

wyb_506

Unregistered / Unconfirmed
GUEST, unregistred user!
SPCOMM中TComm.WriteCommData( pDataToWrite: PChar; dwSizeofDataToWrite: Word ): Boolean;发出的数据是文本格式还是十六进制?我想发十六进制怎么办?(20分)<br />谢谢
 
var Viewstring:string;
sbuf:array[1..11] of byte;

Procedure Senddata; //发送函数
var
i:integer; commflg:boolean;
begin
ViewString:='';
Commflg:=true;
for i:=1 to SendTotal do begin
if not DLLForm.Comm1.WriteCommData(@sbuf,1) then begin
Commflg:=false;
Break;
end;
Sleep(200);
viewstring:=viewstring+inttohex(sbuf,2)+' ';
end;
ViewString:='发送'+ viewstring;
if not Commflg then Messagedlg('发送失败 !' ,mterror,[mbyes],0);
end;

Procedure button1click();
begin
sbuf[1]:=byte($ff);
sbuf[2]:=byte($ff);
sbuf[3]:=byte($10);
sbuf[4]:=byte($01);
sbuf[5]:=byte($02);
sbuf[6]:=byte($61);
sbuf[7]:=byte($64);
sbuf[8]:=byte($16);
STotal:=8;
SendTotal:=8;
Sleep(100);
Senddata(); {调用发送函数}
end;
 
你看 pDataToWrite: PChar,我猜发出的数据格式是文本格式,是不是呢?
 
是16进制的吧
 
无论发送的是什么格式,
都无所谓,
你只要想发送你的十进制格式的数据,将它赋给串口;
你只要想发送你的文本格式的数据,将它转换为十进制,然后赋给串口;
你只要想发送你的十六进制格式的数据,将它赋给串口。。。
 
多人接受答案了。
 
后退
顶部