关于串口通信的问题 我同时打开了多个串口,如果我收到串口1发来的数据,那么我就通过串口1把收到数据的确认信息发过去,如果我收到串口2的数据,我就通过串口2把确认信息发过去。这个功能怎么实现。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用spcomm监控串口1,2它是多线程接收的,所以接收到以后你就会知道是哪个串口传过去的 我刚好做了一个串口通信协议,就是如果我收到串口1发送过来的信息和我想要得一样我就给他回复数据,一部分固定一部分从文本里读出来,给串口1发送回去你有用吗?这是部分代码:我自己的代码是这样的:begin setLength(strRecv,BufferLength); Move(Buffer^,pchar(strRecv)^,BufferLength); mmoComm.Lines.Add('已收到:'+intTostr(BufferLength)+'字节的数据'); mmoComm.Lines.Add(strRecv); aa:=Tstringlist.Create(); aa.LoadFromFile('c:\1.txt'); a1:=aa.Strings[0]; a2:=aa.Strings[1]; a3:=aa.strings[2]; a4:=aa.strings[3]; a5:=aa.strings[4]; a6:=aa.Strings[5]; a7:=aa.strings[6]; a8:=aa.strings[7]; a9:=aa.Strings[8]; a10:=aa.strings[9]; aa.free; if strrecv='02,06,00,01,00,01,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,11,22,03' then begin v:=('02,06,00,01,00,01,'+a1+','+a2+','+a3+','+a4+','+a5+',11,22,03'); Count:= Length(v); comm.writecommdata(pchar(v),count); end;希望能给你带来帮助,打开串口就不用说了吧!需要的话我给你代码。 用N个Spcomm控件,分别监视N个COM口 spcomm用多了,有时会产生错误介意用多线程比较好 ADOTable LookUo方法 Delphi 2006 的一个 BUG 嘛? 一个简单的问题 ★★回家了,散分★★ 求高手!!!急!急!急!!!! $如何通过一个视图实现这样的查询 怎么处理汉字的问题? 向各位请教一个简单的SQL语句问题(为什么我问题提好后2分钟就到第二页是去了,请版主手下留情啊) 再问关于数据库的备份与恢复(Delphi6+sqlServer2000) dll中如何改变指针的大小? insert into语句的语法错误! 寡人的寿辰,散分!这次补上200分!
它是多线程接收的,所以接收到以后你就会知道是哪个串口传过去的
setLength(strRecv,BufferLength);
Move(Buffer^,pchar(strRecv)^,BufferLength);
mmoComm.Lines.Add('已收到:'+intTostr(BufferLength)+'字节的数据');
mmoComm.Lines.Add(strRecv);
aa:=Tstringlist.Create();
aa.LoadFromFile('c:\1.txt');
a1:=aa.Strings[0];
a2:=aa.Strings[1];
a3:=aa.strings[2];
a4:=aa.strings[3];
a5:=aa.strings[4];
a6:=aa.Strings[5];
a7:=aa.strings[6];
a8:=aa.strings[7];
a9:=aa.Strings[8];
a10:=aa.strings[9];
aa.free;
if strrecv='02,06,00,01,00,01,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,11,22,03' then
begin
v:=('02,06,00,01,00,01,'+a1+','+a2+','+a3+','+a4+','+a5+',11,22,03');
Count:= Length(v);
comm.writecommdata(pchar(v),count);
end;
希望能给你带来帮助,打开串口就不用说了吧!需要的话我给你代码。
介意用多线程比较好