现有VB用MSCOMM写的串口程序:
            MSComm1.CommPort = 4
            MSComm1.Settings = "1200,E,7,1"
            MSComm1.InputLen = 0
            MSComm1.PortOpen = True
            MSComm1.Output = "P"
            For i = 1 To 50000
            DoEvents
            Next i
            Instring = MSComm1.Input
要改成DELPHI用SPCOMM怎么写??谢谢!!!!!!!!!!!!!!!!

解决方案 »

  1.   

     comm1.commname:='com4';// MSComm1.CommPort = 4  
     COMM1.BaudRate:=1200;   //        MSComm1.Settings = "1200,E,7,1" 
     comm1.ByteSize:=_7;
     comm1.Parity:=even;
     comm1.StopBits:=_1; comm1.startport;  //MSComm1.PortOpen = True
     
     var
       sbuf:byte;
      sbuf:=chr('p'); 
     comm1.WriteCommData(@sbuf,1);
     //接收用事件完成
     procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
      BufferLength: Word); //bufferlength 就是接收数据的长度
     begin
     end;
               
      

  2.   

    写的比较简单,参考一下吧  
       //串口初始化设置
       AtmComm.CommName := 'COM1';
        AtmComm.BaudRate:=9600;//波特率9600bps
        AtmComm.Parity:=None;//奇偶检验无
        AtmComm.ByteSize:=_8;//数据位8
        AtmComm.StopBits:=_1;//停止位1
            AtmComm.StartComm; //打开串口
        AtmComm.writecommdata(PAnsiChar('*8811*H#'),length('*8811*H#'));//向串口写信息    AtmComm.StopComm;  //停止串口    //接收事件
       procedure TFrmMain.AtmCommReceiveData(Sender: TObject; Buffer: Pointer;
          BufferLength: Word);
       var
         Recdata:String;
         RecStr: String;
       begin
         RecStr := '';
         setlength(recdata,bufferlength);
         move(buffer^,Pchar(Recdata)^,bufferlength);
         RecStr:='接收:'+Recdata;
         Memo1.lines.add(RecStr);//显示接收到的消息
       end;