📄 comm.~pas
字号:
unit Comm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SPComm, StdCtrls;
type
Tfcomm = class(TForm)
Comm1: TComm;
Memo1: TMemo;
Btn_send: TButton;
Button1: TButton;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Btn_sendClick(Sender: TObject);
procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fcomm: Tfcomm;
viewstring:string;
i:integer;
rbuf,sbuf:array[0..15] of byte;
implementation
{$R *.dfm}
procedure Tfcomm.FormShow(Sender: TObject);
begin
comm1.startcomm;
end;
procedure Tfcomm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
comm1.StopComm;
end;
procedure senddata;
var
i:integer;
commflg:boolean;
begin
viewstring:='';
commflg:=true;
for i:=1 to 6 do
begin
if not fcomm.comm1.writecommdata(@sbuf[i],1) then
begin
commflg:=false;
break;
end;
//发送时字节间的延时
sleep(2);
viewstring:=viewstring+inttohex(sbuf[i],2)+' ' ;
end;
viewstring:='发送'+viewstring;
fcomm.memo1.lines.add(viewstring);
fcomm.memo1.lines.add(' ');
if not commflg then messagedlg('发送失败 !' ,mterror,[mbyes],0);
end;
procedure Tfcomm.Btn_sendClick(Sender: TObject);
begin
sbuf[1]:=byte($f0); //帧头
sbuf[2]:=byte($01); //命令号
sbuf[3]:=byte($ff);
sbuf[4]:=byte($ff);
sbuf[5]:=byte($01);
sbuf[6]:=byte($f0); //帧尾
senddata;//调用发送函数
end;
procedure Tfcomm.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;
begin
viewstring:='';
move(buffer^,rbuf,bufferlength);
for i:=0 to (bufferlength-1) do
viewstring:=viewstring+inttohex(rbuf[i],2)+ ' ';
viewstring:='接收 '+ viewstring;
memo1.lines.add(viewstring);
memo1.lines.add(' ');
end;
procedure Tfcomm.Button1Click(Sender: TObject);
begin
comm1.StopComm;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -