您现在所在的是:

串口通信

回帖:2个,阅读:1622 [上一页] [1] [下一页]
* 帖子主题:

通讯怎么回这样

930
qingqing619
文章数:6
年度积分:50
历史总积分:930
注册时间:2005/4/18
发站内信
发表于:2005/4/18 20:59:00
#0楼
本代码可以通讯,但是点击发送后,一直处于发送状态,停止不了,比如发送1234
后,Memo2的内容是12341234123412341234123412341234。求助高手/我该怎么办??
//Comm1发送数据
procedure TForm1.BitBtn4Click(Sender: TObject);
var
strSend:String;
i:Integer;
begin
 try
 Comm1.StopComm;
 Comm1.StartComm;
 except
 Messagedlg('无法打开COMM1!' ,mterror,[mbOK],0);
 end;
 sleep(50);//等待一段时间
 StatusBar1.Panels[1].Text:='串口1已启动';
 for i:=0 to  Memo1.Lines.Count-1 do
 begin
 StrSend:=Memo1.Lines[i];
 try
 StatusBar1.Panels[1].Text:='串口1正在发送数据';
 Comm1.WriteCommData(PChar(strSend),Length(strSend));
 //发送字符串数据
 except
  ShowMessage('发送错误');
  end;

end;
end;

//Comm2串口接收数据
procedure TForm1.BitBtn6Click(Sender: TObject);

type
IArr=^integer;
var
RevP:array[1..4096]of byte;
i:integer;
CommRevstr:shortString;
BufferLength: Word;
Buffer: Pointer;
begin
 SetLength(CommRevstr,BufferLength);
 Move(IArr(buffer)^,Revp,bufferLength);
 For i:=1 to BufferLength do
  begin
   CommRevstr[i]:=Char(Revp[i]);
  end;
 Memo2.Lines.Add(CommRevStr);//添加到Memo2中
 StatusBar1.Panels[2].Text:='串口2正在接收数据';

end;
----------------------------------------------
1459
shenhong
文章数:257
年度积分:50
历史总积分:1459
注册时间:2004/3/27
发站内信
发表于:2005/4/18 22:16:00
#1楼
在什么地方接收数据呢??


[此贴子已经被作者于2005-4-18 22:20:20编辑过]
930
qingqing619
文章数:6
年度积分:50
历史总积分:930
注册时间:2005/4/18
发站内信
发表于:2005/4/19 9:58:00
#2楼
cOM1发送
COM2接收

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003