如何发送大于128的数据啊!
for i:=1 to 255 do
mscomm1.output:=chr(i);
但下位机收到的128——255错误?
请教各位,怎么才能解决!!

解决方案 »

  1.   

    VB的Mscomm控件详解
    http://www.8860.net/delphicode/dispdoc.asp?id=50
    看看,还有问题找我
    --------------------------------------------------------------------
    看尽悲伤,庸人自扰不平事。叹尽荒凉,海阔天空谁人知。狂风劲兮,百花飘
    扬乱舞香。捏花一笑,海不扬波断肠心!
      

  2.   

    谢谢!但是我是在delphi中用的,区别好象很大啊!
    你能不能给我写以下,我该怎么发,。。拜托!!!!!!!!
      

  3.   

    用spcomm吧,我的程序里用它,效果非常好。
      

  4.   

    我也是在delphi中用的,区别不大,有问题找我。
    --------------------------------------------------------------------
    看尽悲伤,庸人自扰不平事。叹尽荒凉,海阔天空谁人知。狂风劲兮,百花飘
    扬乱舞香。捏花一笑,海不扬波断肠心!
      

  5.   

    const MaxValue = 255;
    var vBuf: Variant;
    begin
        vBuf := VarArrayCreate([0,MaxValue-1], varByte);
        for i:=1 to MaxValue do 
          vBuf[i - 1] :=  i;
        //清空接收缓冲区的数据.
        MSComm1.InBufferCount := 0;
        //设置触发接收事件的字节数.
        //MSComm1.RThreshold := 12;
      try
        MSComm1.Output := vBuf;
      except
      end;
    end;
      

  6.   

    小弟在这里谢谢各位了!!
    我把我的程序写在这里
    var dd :byte;
        
    mscomm1.output:=chr(255);//发送ff通知下位机。
    mscomm1.output:=chr(255);
    //一到8个字节。
    mscomm1.output:=chr(170);
    mscomm1.output:=chr(85);
    mscomm1.output:=chr(0);
    mscomm1.output:=chr(0); 
    mscomm1.output:=chr(65);
    mscomm1.output:=chr(0); 
    mscomm1.output:=chr(13); //校验和
    mscomm1.output:=chr(78); 
    //一到8个字节。mscomm1.output:=chr(255);
    我的高字节170和255好象不对!各位高人能不能给我指正以下!还有我怎么才能相VB那样
    dim bb(8) as byte
    mscomm1.output:=bb
    那样方便!
    谢谢!
      

  7.   

    下位机的InputMode属性设为comInputModeBinary(1),使用二进制接收数据就能正确接收到128-255的数据了,如果使用文本方式接收,128-255表示的是双字节编码字符的第一个字节,接受当然错误啦。
      

  8.   

    谢谢各位了!
    我的程序已经搞定了!
    我还发现用api函数的话,chr()型的也没问题。看来如果能脱离控件的话,那是最好不过的了!!
      

  9.   

    谢谢各位了!
    我的程序已经搞定了!
    谢谢!
    我还发现用api函数的话,chr()型的也没问题,看来如果能脱离控件