网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
用DELPHI进行 Win32环境下串行通讯的程序设计
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
sp;   CloseHandle(hNewCommFile);

    end;

  Label1.Font.Color :=clBlack;

  Label1.Caption:=''发送成功!'';

  Button1.Enabled :=True;

  Button3.Enabled :=True;

  Button4.Enabled :=True;

end;

  

procedure TForm1.Button3Click(Sender: TObject); // 接收处理

var

  Ok : Boolean;

  dcb : TDCB;

  com_thread: Thandle;

  ThreadID:DWORD;

begin

  ReceiveData :=0;

  Button1.Enabled :=False;

  Button2.Enabled :=False;

  RichEdit1.Clear;

  // 打开COM2

  hNewCommFile:=CreateFile( ''COM2'',GENERIC_READ,0,

                         nil, OPEN_EXISTING,FILE_FLAG_OVERLAPPED,0 );

  if hNewCommFile = INVALID_HANDLE_VALUE then

     begin

       MessageBox(0,''Error opening com port!'',''Notice'',MB_OK);

       Exit;

     end;

  Ok:=SetCommMask(hNewCommFile,EV_RXCHAR);

  if ( not Ok) then

    begin

      MessageBox(0,''SetCommMask Error!'',''Notice'',MB_OK);

      Exit;

    end;

  SetupComm(hNewCommFile,1024,1024);

  GetCommState( hNewCommFile, dcb );

  dcb.BaudRate :=9600;

  dcb.ByteSize :=8;

  dcb.Parity :=NOPARITY;

  dcb.StopBits := ONESTOPBIT;

  Ok := SetCommState( hNewCommFile, dcb );

  if ( not Ok) then MessageBox(0,''SetCommState Error!'',''Notice'',MB_OK);

  FillChar(Read_Os,SizeOf(Read_Os),0);

  Read_Os.Offset := 0;

  Read_Os.OffsetHigh := 0;

  // Create Event for Overlapped Read

  Read_Os.hEvent :=CreateEvent(nil,true,False,nil);

  if Read_Os.hEvent=null then

    begin

      CloseHandle(hNewCommFile);

      MessageBox(0,''CreateEvent Error!'',''Notice'',MB_OK);

      Exit;

    end;

  // Create Event for PostMessage

  Post_Event:=CreateEvent(nil,True,True,nil);

  if Post_Event=null then

    begin

      CloseHandle(hNewCommFile);

      CloseHandle(Read_Os.hEvent);

      MessageBox(0,''CreateEvent Error!'',''Notice'',MB_OK);

      Exit;

end;

  // 建立通信监视线程

  Com_Thread:=CreateThread(nil,0,@CommWatch,nil,0,ThreadID);

  if (Com_Thread=0) then

    MessageBox(Handle,''No CraeteThread!'',nil,mb_OK);

  EscapeCommFunction(hNewCommFile,SETDTR);

  Label1.Font.Color :=clRed;

&

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号