串口通讯,API精通的高手进来帮忙。。或给些例子。。 (50分)

感谢truecat,你的来信我收到了,挺好的,不过是别人的DLL,
我还是想自己学,不过真的写不出少再来研究你的DLL,谢谢你了。
to 王公子 你有例子吗?可否告知一二。
to Milpas 你用过吗?可以与手机通讯吗?有说明或例子?
 
能发能收,是我自己写的
 
还有自己写的,不是只有简单的设置及打开关闭读写,没有那个DLL里的功能多。
如果需要,也可以提供。
 
还是要谢谢truecat,你有API例子,给我来信,谢谢。
 
我也认为用spcomm较好,我曾经用它开发过串口通信程序,不过不是与手机,而是与modem
但我认为差别不大,另外还可以用VB等带的ms comm控件(是OCX控件),我也用过(在
foxpro下),感觉也还可以,但对于Delphi来说还是spcomm好用。
另,你能否找到P7689的数据线定义,如能的话请mail给我(lw86@km169.net),先谢谢
了!
 
感谢truecat给我发的例子与DLL,这里先谢谢你了。
to lw86
spcomm,不知为什么在我的XP系统上,端口一打开就错误,
我把COM1让出来,还是一样,跟本就打不开。就像我上面说的,
一打开COM1,在Comm1ReceiveError事件就有无穷的错误。。。
现在正在学习truecat发过的API函数。。。
 
还不发分呀?!:(
 
在XP下我未用过,明天我试试看,可能是spcomm有对端口的操作。
 
对不起了,truecat。到时再开个分给你了。我还要多看些例子,因我很笨的。
lw86先谢谢你了,另外我会帮你打7689的线,只不过我现在不在深圳,要不就很多了。
 
//初始化
procedure Tform1.cominit;
begin
hcom:=createfile(pchar(CurrentPort),generic_read or generic_write,0,nil,open_existing,
file_attribute_normal or file_flag_overlapped,0);
if hcom<>invalid_handle_value then
begin
setupcomm(hcom,4096,4096);
getcommstate(hcom,lpdcb);
getCommTimeouts(hcom,lpcom);
lpdcb.baudrate:=CurrentBaud;
lpdcb.stopbits:=0;
lpdcb.bytesize:=8;
lpdcb.Parity:=Noparity;
lpdcb.evtchar:=char($AA);
lpcom.readintervaltimeout:=MAXDWORD;
lpcom.readtotaltimeoutmultiplier:=0;
lpcom.readtotaltimeoutconstant:=0;
setcommstate(hcom,lpdcb);
setcommtimeouts(hcom,lpcom);
setcommmask(hcom,ev_rxflag);
// setcommmask(hcom,ev_rxchar);
end;
end;
//发送数据
writefile(hcom,Data1.S_Byte,Data1.S_Number,writed,@lpol);
Wait1:=WaitForSingleObject(lpol.hEvent,200);
WaitcommEvent(hcom,dwevtmask,@lpol);
Wait1:=WaitForSingleObject(lpol.hEvent,200);
if ( Wait1 = WAIT_OBJECT_0) then
//接收数据
readnumber := coms.cbInQue;
//得到串口中的数据数目
bo:=readfile(hcom,Temp_Data,readnumber,numbertoread,@lpol);//串口的数据保存到Temp_Data中
for i:=1 to ReadNumberdo
 
to troyliu
可不可以给我全面一点点的例子,发到SCP163@163.NET
 
有没解决哪?
 
先谢谢大家了,我下回开个大贴300分的,欢迎再来研究。
在这里真是让你们辛苦了。再次说声谢谢了。
哈。。。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
950
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
774
SUNSTONE的Delphi笔记
S
顶部