delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
SPCOMM串口通信的小问题 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061122104545281.html
SPCOMM以  
  1200,8,n,1向下位机发送0X10,并接收0X11(成功),若没收到则表示失败  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
    try  
              Comm1.BaudRate:=1200;  
              Comm1.CommName:=COM1;  
              Comm1.ByteSize:=8;  
              Comm1.ParityCheck:=1  
              Comm1.startcomm;  
        except  
              showmessage('打开失败');  
        end;  
  Comm1.WriteCommData(       );                     //这里如何发送16字节的命令?  
                                                                      //如何接收??谢谢  
   
  Comm1.StopComm;  
  end;

http://mm.blogxp.org/Article/295723/

其实这些问题你自己用google或baidu搜索一下随便找个例子就可以搞定的!

google出来没有发送16位数字的例子。

能否直接写  
  Comm1.WriteCommData('16',1);

procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
    sendbuff:array   of   byte;  
    sendlen:integer;  
  begin  
    try  
              Comm1.BaudRate:=1200;  
              Comm1.CommName:=COM1;  
              Comm1.ByteSize:=8;  
              Comm1.ParityCheck:=1  
              Comm1.startcomm;  
        except  
              showmessage('打开失败');  
        end;  
  sendlen:=1;  
  setlength(sendbuff,1);  
  sendbuff[0]:=16;  
  Comm1.WriteCommData(sendbuff,1);                     //这里如何发送16字节的命令?  
  sleep(100);  
  //如何接收??谢谢  
  你在ONRECEVICEDATA()中写代码吧........  
   
  Comm1.StopComm;  
  end;

接收时我一般声明一个数组,然后用move函数复制过去,在做相应处理

接收与发送要分开,  
    接收  
  ONRECEVICEDATA()  
  var  
      p:pArrayByte;  
  begin  
      p:=buffer;  
      if   p[0]=$11   then    
      showmessage('OK');  
  end;

posted on 2009-05-26 17:28 delphi2007 阅读(423) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。