unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, SPComm;type
TForm1 = class(TForm)
Comm1: TComm;
Memo1: TMemo;
Button1: TButton;
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;
viewstring:string;
i:integer;
rbuf,sbuf:array[1..6] of byte;
implementation{$R *.dfm}procedure TForm1.FormShow(Sender: TObject);
begin
comm1.StartComm;
end;procedure TForm1.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 form1.comm1.writecommdata(@sbuf,1) then
begin
commflg:=false;
break;
end;
//发送时字节间的延时
sleep(2);
viewstring:=viewstring+inttohex(sbuf[i],2)+'';
end;
viewstring:='发送'+viewstring;
form1.memo1.lines.add(viewstring);
form1.memo1.lines.add('' );
if not commflg then messagedlg('发送失败 !' ,mterror,[mbyes],0);
end;procedure TForm1.Button1Click(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 TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;
begin
viewstring:='' ;
move(Buffer^,(@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.
在memo1上只是显示发送F0 01 FF FF 0F ,但没有显示接受F0 01 FF FF 0F,应该是接收不成功吧,请问哪里出错啦,帮忙看看
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, SPComm;type
TForm1 = class(TForm)
Comm1: TComm;
Memo1: TMemo;
Button1: TButton;
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;
viewstring:string;
i:integer;
rbuf,sbuf:array[1..6] of byte;
implementation{$R *.dfm}procedure TForm1.FormShow(Sender: TObject);
begin
comm1.StartComm;
end;procedure TForm1.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 form1.comm1.writecommdata(@sbuf,1) then
begin
commflg:=false;
break;
end;
//发送时字节间的延时
sleep(2);
viewstring:=viewstring+inttohex(sbuf[i],2)+'';
end;
viewstring:='发送'+viewstring;
form1.memo1.lines.add(viewstring);
form1.memo1.lines.add('' );
if not commflg then messagedlg('发送失败 !' ,mterror,[mbyes],0);
end;procedure TForm1.Button1Click(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 TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;
begin
viewstring:='' ;
move(Buffer^,(@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.
在memo1上只是显示发送F0 01 FF FF 0F ,但没有显示接受F0 01 FF FF 0F,应该是接收不成功吧,请问哪里出错啦,帮忙看看
找个铁丝(导体),把2,3号针联通2,3号针是那两根针请google