发表于:2005-04-19 10:58:00
楼主
我毕设要用delphi编一个串口通信的程序,我看了好些书,编了一个,可结果出不来,我用的是mscomm控件,只要能实现简单的收发数即可。
我把我的源码法上来,希望各位高手指点一二,小妹我感激不尽!!!
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, MSCommLib_TLB;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Button1: TButton;
Memo1: TMemo;
Memo2: TMemo;
Label3: TLabel;
Label4: TLabel;
Button2: TButton;
Button3: TButton;
MSComm1: TMSComm;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure MSComm1Comm(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
mscomm1.commport:=2;
mscomm1.settings:='9600,n,8,1';
mscomm1.inputlen:=0;
mscomm1.inbuffercount:=0;
mscomm1.portopen:=true;
mscomm1.rthreshold:=1;
mscomm1.sthreshold:=1;
mscomm1.InBufferSize :=1024;
mscomm1.OutBufferSize :=1024;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
mscomm1.rtsenable:=true;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
mscomm1.dtrenable:=true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
mscomm1.portopen:=false;
mscomm1.dtrenable:=false;
mscomm1.rtsenable:=false;
close;
end;
procedure TForm1.MSComm1Comm(Sender: TObject);
var
re:olevariant;
se:olevariant;
begin
case mscomm1.CommEvent of
comevsend:
begin
se:=mscomm1.Input ;
se:=memo1.Text +se;
end;
comevreceive:
begin
re:=mscomm1.Output ;
memo2.Text :=memo2.Text +re;
end;
end;
end;
end.
这个程序收数部分我试了不灵,发数的没试,估计也不灵,希望大家多多指点,拜托了!!!
也可以把源码发到我的邮箱中:woaixgll@sina.com.cn 再次万分感谢!!!