//发送 for i:=1 to 8 do begin bb := comm1.WriteCommData(@sbuf[i],1); sleep(1); if not bb then showmessage('d'); end; end;procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word); varviewstring:string; rbuf:array[1..8] of byte; i:integer; begin viewstring:='' ; move(buffer^,pchar(@rbuf)^,bufferlength); for i:=1 to bufferlength do viewstring:=viewstring+inttohex(rbuf[i],2)+'' ; viewstring:='接收'+viewstring; memo1.lines.add(viewstring); memo1.lines.add('' ); end; end.
unit maincom1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, SPComm;type
TForm1 = class(TForm)
Comm1: TComm;
Button1: TButton;
Memo1: TMemo;
Edit1: TEdit;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormShow(Sender: TObject);
begincomm1.StartComm;end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
comm1.StopComm;
end;procedure TForm1.Button1Click(Sender: TObject);
var
sbuf:array[1..8] of byte;
i : integer;
bb : boolean;begin
bb := true;
sbuf[1]:=byte($f0); //帧头
sbuf[2]:=byte($01); //命令号
sbuf[3]:=byte($ff);
sbuf[4]:=byte($ff);
sbuf[5]:=byte($01);
sbuf[6]:=byte($34);
sbuf[7]:=byte($42);
sbuf[8]:=byte($f0);//帧尾
//发送
for i:=1 to 8 do
begin
bb := comm1.WriteCommData(@sbuf[i],1);
sleep(1);
if not bb then
showmessage('d');
end; end;procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
varviewstring:string;
rbuf:array[1..8] of byte;
i:integer;
begin
viewstring:='' ;
move(buffer^,pchar(@rbuf)^,bufferlength);
for i:=1 to bufferlength do
viewstring:=viewstring+inttohex(rbuf[i],2)+'' ;
viewstring:='接收'+viewstring;
memo1.lines.add(viewstring);
memo1.lines.add('' );
end;
end.