首先外设要接到本地机上
设好通讯协议:波特率,奇偶校验…
再设好com口,是com1还是com2…

解决方案 »

  1.   

    上面都没错,我设置好了,可是数据读不出去
    里面如下
    启动
    comm1.comstart;
    读进去语句
    writecommdata(buffer,6);其中
    var 
    buffer:string;
      

  2.   

    TMscomm:1)从VB中来的OCX构件。2)设置RThreshold=1;3)Setting中设置速度,位数,校验的等等。3)output输出万能变量olevariant;input读入。
    具体的你可以看《delphi串行通信编程》--人邮的。还有《串行端口大全》--机械的。两本书结合起来看。
      

  3.   

    DELPHI串行口通信书,我有,可是我老是出错,就是读不进去,
      

  4.   

    comm1.comstart;
    sleep(1000);//此处加个延时
    writecommdata(buffer,6);
      

  5.   

    如何读进去 MDA
    上面的能否用
    writecommdata(buffer,6);
    buffer:=’MDA‘;
    还有,好象writecommdata(pdatatowrite,size);
    pdatatowrite 是字符串,我这样行吗,后面是字符串长度
      

  6.   

    buffer,6恐怕不行
    你试试
    @buffer[2],6
      

  7.   

    var: FComm: TSPComm;
    ......begin
      if FComm.Handle <> 0 then FComm.StopComm;
      FComm.CommName := 'COM1';  //通讯端口
      FComm.BaudRate := 9600;//波特率
      FComm.ByteSize := //字节数 8 or 7
      FComm.Parity :=   // 奇偶校验
      FComm.StopBits := //停止位 1 ,2 or 1.5  {流控制}
      FComm.Outx_XonXoffFlow := FALSE;//OUT XON/XOFF流控制 True or False;
      FComm.Inx_XonXoffFlow :=  FALSE;//IN XON/XOFF流控制 True or False;
      if  {硬件流} then
      begin
        FComm.Outx_CtsFlow := TRUE;
        FComm.Outx_DsrFlow := TRUE;
        FComm.DtrControl := DtrHandshake;
        FComm.RtsControl := RtsHandshake;
      end else begin
        FComm.Outx_CtsFlow := FALSE;
        FComm.Outx_DsrFlow := FALSE;
        FComm.DtrControl := DtrEnable;
        FComm.RtsControl := RtsEnable;
      end;  FComm.StartComm; //打开端口
      //在此事件中接收数据吧:FComm.OnReceiveData
      //FComm.WriteCommData是发送数据
    end;
      

  8.   

    能否帮法发送 MDA 出去呢,
      

  9.   

    buffer的钱两个字节好像是长度,所以你试是从第三个字节开始发
      

  10.   

    要想发送'MDA'至仪器,可以这样做:procedure TransmitData(TempStr: String);
    begin
      if FComm.Handle <> 0 then
        FComm.WriteCommData(PChar(TempStr),Length(TempStr));
    end;...TransmitData('MDA');
    ...
      

  11.   

    MDA???没接触过
    是Microsoft Access内抽入器?
    是Microsoft Access 2.0版及其后续版本的工作组事件?
    要达到一个怎样的效果?
      

  12.   

    buffer的钱两个字节好像是长度,所以你试是从第三个字节开始发
      

  13.   

    MDA???
    是MDA Microsoft Access内抽入器?
    Microsoft Access 2.0版及其后续版本的工作组事件?
    你要达到一个怎样的过程?
      

  14.   

    要想发送'MDA'至仪器,可以这样做:procedure TransmitData(TempStr: String);
    begin
      if FComm.Handle <> 0 then
        FComm.WriteCommData(PChar(TempStr),Length(TempStr));
    end;...
    TransmitData('MDA');不过有点仪器可能要加回车符才接受。TransmitData('MDA'#13);或回车换行:
    TransmitData('MDA'#13#1A);硬件流指硬件控制:两个232端口需要将脚RTS,CTS对应相连。
      

  15.   

    请问如何,发出MDA,我只要这个数据就够了,谢谢,
      

  16.   

    错了,回车换行:
    TransmitData('MDA'#13#10);
      

  17.   

    错了,回车换行:
    TransmitData('MDA'#13#10);
      

  18.   

    错了,回车换行:
    TransmitData('MDA'#13#10);
      

  19.   

    大民, 便宜procedure TransmitData(TempStr: String);
    begin
      if FComm.Handle <> 0 then
        FComm.WriteCommData(PChar(TempStr),Length(TempStr));
    end;通不过
      

  20.   

    type  TForm1 = class(TForm)
      public:
        TransmitData(TempStr: String);
      end;
    ...procedure TForm1.TransmitData(TempStr: String);
    begin
      if FComm.Handle <> 0 then
        FComm.WriteCommData(PChar(TempStr),Length(TempStr));
    end;把TransmitData放在类里面,还通不过吗?
      

  21.   

    通不过,试过,刚才是procedure TForm1.TransmitData(TempStr: String);
    begin
      if FComm.Handle <> 0 then
        FComm.WriteCommData(PChar(TempStr),Length(TempStr));
    end;里面的FCOMM通不过,我改名了SPCOMM为FCOMM,不过现在是PUBLIC,里面通不过
      

  22.   

    TForm1 = class(TForm)
      public:
        procedure TransmitData(TempStr: String);
      end;还通不过吗?
    把你的的sourcecode铁出来看看!
      

  23.   

    FCOMM通不过,显示为
    [Error] Unit1.pas(34): Undeclared identifier: 'FCOMM'