WIN2K下串口通讯?(100分)

  • 主题发起人 liaolb20
  • 开始时间
L

liaolb20

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:用什么控件实现WIN2K下的通信?如何实现?
 
W

windwy

Unregistered / Unconfirmed
GUEST, unregistred user!
comport不错!
 
B

blackbook

Unregistered / Unconfirmed
GUEST, unregistred user!
L

liaolb20

Unregistered / Unconfirmed
GUEST, unregistred user!
请问你有没有案例?可以告诉我吗?
 
L

liaolb20

Unregistered / Unconfirmed
GUEST, unregistred user!
COMPORT在哪里?
 
H

hfghfghfg

Unregistered / Unconfirmed
GUEST, unregistred user!
spcomm的改正
hNewCommFile :=
CreateFile(PChar('//./' +FCommName),
GENERIC_READ or GENERIC_WRITE,
0, {not shared}
nil, {no security ??}
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED,
0 {template});



 
L

liaolb20

Unregistered / Unconfirmed
GUEST, unregistred user!
你写的这个能否解释的多一点?
我用网上的一个SPCOMM的程序收不到数据?请大侠帮忙看一下?拜托

var
Form1: TForm1;
viewstring:string;
i:integer;
rbuf,sbuf:array[1..16] of byte;
implementation
{$R *.DFM}
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,2)+'';
end;
viewstring:='发送'+ viewstring;
form1.memo1.lines.add(viewstring);
form1.memo1.lines.add('');
if not commflg then messagedlg('发送失败 !' ,mterror,[mbyes],0);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
comm1.StopComm;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
comm1.StartComm;
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^,pchar(@rbuf)^,bufferlength);
for i:=1 to bufferlength do
viewstring:=viewstring+inttohex(rbuf,2)+'';
viewstring:='接收'+viewstring;
memo1.lines.add(viewstring);
memo1.lines.add('');
end
 
L

lp414

Unregistered / Unconfirmed
GUEST, unregistred user!
form1.comm1.writecommdata(@sbuf,1)
should:
form1.comm1.writecommdata(@sbuf,length)
 
J

journer

Unregistered / Unconfirmed
GUEST, unregistred user!
普通的使用SPCOMM吧,是开放源代码的
比较简单,例子在DFW上有很多了
 
L

liaolb20

Unregistered / Unconfirmed
GUEST, unregistred user!
to lp414:form1.comm1.writecommdata(@sbuf,length)
这个语句似乎一点点问题,U为何物?


TO JOURNER:很不好意思,我是初级用户,不知道DWF指什么?能否再详细些?
 
S

shaozen

Unregistered / Unconfirmed
GUEST, unregistred user!
DWF=大富翁。呵呵
 
W

wuxianliang2002

Unregistered / Unconfirmed
GUEST, unregistred user!
你可以用mscomm,或是api函数,我用过spcomm,数据易丢失。
 
L

LiChaoHui

Unregistered / Unconfirmed
GUEST, unregistred user!
串口通信控件(Nothread Version) ,我自己用的,感觉不错,推荐
短小精悍
http://www.playicq.com/dispdocnew.php?id=1551

简介: 非线程版的串口通信组件,
简单,小巧,实用,以前的版本不支持Win2000,
Lichaohui对其中的Bug进行了修正,
并改进了部分功能,
使得这个外国人写的组件重新在D6.Win2000下能够使用
它的功能不是很强,但作为一个串口组件,足够了
稳定可靠最重要嘛
 
H

HanFeng

Unregistered / Unconfirmed
GUEST, unregistred user!
欢迎各位到http://www.delphibbs.com/delphibbs/dispq.asp?LID=1642823
来看看,我的第二个问题和此题很类似,我的是只有超时才能收到应答数据。也是在win2k下,
不过没有在win98下试过。
 
顶部