关用MSCOMM控件串口通讯的问题
我的电脑有一个串口,如果把2,3脚连起来,可不可以自己发送数据给自己?
在delphi7里用mscomm控件,把edit里的数据发出去,自己接收,在memo里显示。
哪位大侠给个代码,小弟谢谢了。
问题点数:100、回复次数:4Top
1 楼cjf1009(农民程序员)回复于 2005-06-02 16:54:08 得分 60
Mscomm的属性你应该好好看一下.大概就这样:
Mscomm1.PortOpen :=True; //打开COM口
Mscomm1.PortOpen :=False; /关闭COM口
s :=String(Mscomm1.Input); //得到数据
Edit1.Text :=s;
Mscomm1.OutPut :=Edit1.Text; //输出数据
另外 ,InputMode ,InputBufferCount等属性也很重要
例如,你在窗体上放了一个Button1 ,一个Button2,一个Edit1,一个Mscomm1
procedure TForm1.Button1Click(Sender :TObject);
begin
repeat
until Mscomm1.InputBufferCount >=1;
Edit1.Text :=String(Mscomm1.Input);
end;
procedure TForm1.Button2Click(Sender :TObject);
begin
Mscomm1.Inputm :=Edit1.Text ;
end;
procedure TForm1.Create(Sender :TObject);
begin
MsComm1.ComPot :=2; //设置COM号
MsComm1.Settings :='2400,8,n,1'; //设置参数
MsComm1.PortOpen :=True;
end;
procedure TForm1.Destroy(Sender :TObject);
begin
MsComm1.PortOpen :=False;
end;
Top
2 楼march31(请问:把硬盘数据删除一些能减轻主机的重量么?)回复于 2005-06-03 09:13:53 得分 0
先谢谢。
怎么有时候我发送‘vasdfgh’,在memo里这样显示
v
asdfgh
vasdfgh
……
后面就正常了
开始不正常啊Top
3 楼happyggy(Delphi<-&&->java)回复于 2005-06-03 09:34:46 得分 40
procedure TForm1.Button1Click(Sender :TObject);
begin
repeat
until Mscomm1.InputBufferCount >=1;
if length(mscomm1.input)>=length('vasdfgh') then //加这一句,因为读串口的时候有残留
Edit1.Text :=String(Mscomm1.Input); //每次读都要判断是否是你需要的格式
end;
Top
4 楼march31(请问:把硬盘数据删除一些能减轻主机的重量么?)回复于 2005-06-03 16:07:47 得分 0
To happyggy:
你的代码我试了,好象不行啊。
我改成
procddure TForm1.ButtonClick(Sender:Tobject);
begin
repeat
until Mscomm1.InBuffercount >=length(Edit1.text);
memo1.text :=String(Mscomm1,input);
这样好象可以了Top




