如何利用多线程实现Com1与Com2同时进行数据发送或采集,请各位高手提供思路、代码或实例?

解决方案 »

  1.   

    打开串口API程序
    ////////////////////////////////////////////////////
    procedure TFormMain.OpenComPort;                              //打开串口子程序
    var
      cc:TCOMMCONFIG;
      Temp:string;begin
      Temp:='COM'+ inttostr(ComPort);            //打开端口
      hComm:=CreateFile(PChar(Temp),GENERIC_READ or GENERIC_WRITE,
                     0,NIL,OPEN_EXISTING,0,0);
      if (hComm=INVALID_HANDLE_VALUE) THEN
        begin
          MessageBox(0,'打开串口错误!','',MB_OK);
          hComm:=0;
          Exit;
        end;
      GetCommState(hComm,cc.dcb);               //设置端口属性
      cc.dcb.BaudRate:=BaudRate;
      cc.dcb.ByteSize:=8;
      cc.dcb.Parity:=NOPARITY;
      cc.dcb.StopBits:=ONESTOPBIT;
      if not SetCommState(hComm,cc.dcb) then
        begin
          MessageBox(0,'串口设置错误!','',MB_OK);
          Exit;
        end;
      SetCommMask(hComm,EV_RXCHAR);end;
    ////////////////////////////////////////////////////////////////////
      

  2.   

    我用MSCOMM控件与DELPHI的TTHREAD对象成功封装了西门子GSM调制解调器短信接收与发送的功能.DELPHI的TTHREAD对象能非常简单地实现这一功能.楼主可按照自己的需求封装细节,并留出接口.无论是几个串口,在程序中无非是楼主封装类的多个对象的建立,问题应该是很简单的.
      

  3.   

    http://community.csdn.net/Expert/TopicView.asp?id=3246340