怎样用mscomm32控件从硬件中接收数据!!!!
写出代码
!!!!
谢谢!!!

解决方案 »

  1.   

    第一句:comm1.portopen;用来打开端口.
    第二句:comm1.portclose;用来关闭端口.
    第三句:comm1.output:=edit1.text;用来向端口写数据.
    第四句:edit2.text:=comm1.input;用来从端口读数据.可以写在oncomm事件里面.当事件类型是2的时候可以用来接收数据.不过我发现mscomm控件在WinXP下面怎么不能用?说没有LicenseKey,不知道什么意思?
      

  2.   

    我正在写一个串口的DELPHI的组件,呵呵,你也可以以API来实现!
      

  3.   

    主要是readFile
    WriteFile等几个函数
      

  4.   

    第一句:comm1.portopen;用来打开端口.
    第二句:comm1.portclose;用来关闭端口.
    第三句:comm1.output:=edit1.text;用来向端口写数据.
    第四句:edit2.text:=comm1.input;用来从端口读数据.可以写在oncomm事件里面.当事件类型是2的时候可以用来接收数据.
      

  5.   

    mscomm:微软的东西,ActivX控件,使用简单,在VB中带的,性能一般,由于是ActivX控件,打包时需要注册好多信息,不推荐使用。
    spcomm:比较好的vcl,算是比较专业的,解剖了一下,功能比较完善。
    TurboPower:公认的专业通讯控件。可以到其站点下载,开放源码了。
    我在制作串口通讯软件时三种都用过,最终全部使用TurboPower!所以也推荐大家使用它。
    写了个例子,基本的串口通讯都可以实现,可提供参考。
    下载地址:http://www.kaer.cn/default.aspx(网站安全性较差,经常当机,如果急用,mail我)
    多多指正:[email protected]
      

  6.   

    在Form中放置一Memo控件用于显示接收的数据,Combobox1选择通信参数(
    Setting属性值),Combobox2选择串口(CommPort属性值),按Button1开始接收
    数据,按Button2停止接收。
      procedure TForm1.FormCreate(Sender: TObject);
      begin
      Mscomm1.InBufferCount :=0; // 清空接收缓冲区
      Mscomm1.InputLen :=0; // Input读取整个缓冲区内容
      Mscomm1.RThreshold :=1; // 每次接收到字符即产生OnComm事件
      end;
      procedure TForm1.Button1Click(Sender: TObject);
      begin
      Mscomm1.Settings :=ComboBox1.Text;
      if ComboBox2.Text ='com1' then // 假设只考虑com1和com2两种情况
        Mscomm1.CommPort :=1
      else
        Mscomm1.CommPort :=2;
      Mscomm1.PortOpen :=true; // 打开串口
      Mscomm1.DTREnable :=true; // 数据终端准备好
      Mscomm1.RTSEnable :=true; // 请求发送
      end;
      procedure TForm1.Button2Click(Sender: TObject);
      begin
      Mscomm1.PortOpen :=false; // 关闭串口
       Mscomm1.DTREnable :=false;
      Mscomm1.RTSEnable :=false;
      end;
      procedure TForm1.MSComm1Comm(Sender: TObject);
      var
      recstr:Olevariant;
      begin
       if Mscomm1.CommEvent = 2 then
        begin
      recstr := Mscomm1.Input ;
      Memo1.text := Memo1.Text + recstr;
      end;
      end;
      

  7.   

    1comm1.portopen;用来打开端口.
    2comm1.portclose;用来关闭端口.
    3comm1.output:=edit1.text;用来向端口写数据.
    4edit2.text:=comm1.input;用来从端口读数据.可以写在oncomm事件里面.当事件类型是2的时候可以用来接收数据.
      

  8.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Comm.CommPort:=1;//串口初始化
      Comm.Settings :='9600,n,8,2';
      Comm.RThreshold:=1;
      Comm.InputMode:=1;
      Comm.PortOpen:= True ; //comm口设置
      Comm.InBufferCount:=0;
      Comm.InputLen:=0;
      Comm.OutBufferCount:=0;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
    Comm.Output:=x//需要发送的数据
      end;
    procedure TForm1.MSComm1Comm(Sender: TObject);
    begin
        case Comm.CommEvent of
          ComEvReceive:
            begin
                 length:=MSComm1.InBufferCount ;
                ReceiveDataVar:= Comm.input;
                 MSComm1.InBufferCount:=0;
                 for  j:=0 to length do
                   ReceiveData[j]:=ReceiveDataVar[j];
              end;// end if 是读数据
            end;
        end;
    end;