在VB中可以
dim b(10) as byte
b(0)=100
b(1)=20
......
b(10)=134
mscommm1.output=b
在delphi中再这样写就会提示
[Error] Unit1.pas(36): Incompatible types: 'OleVariant' and 'Array'
那在delphi中该如何发送字节数组??用的同样都是微软的comm控件。mscomm1.output:='abcde';用8位的单片机接收时会收到97,0,98,0......实际发送的是16字节的字符。

解决方案 »

  1.   

    那你看看这个控件有没有诸如putchar的方法啊一般说来这个东西都是用来发送数组的
      

  2.   

    你用shortInt类型可以赋值, shortInt为8位
      

  3.   

    用 spcom,非常爽的串口控件,还带范例程序.偶已经用这个做了很多项目了.
    不要用把串口当作文件打开的方式,过于烦琐.
      

  4.   

    我的spcomm用法是不是有错误?我只下载到了spcomm.pas和.dcu,在uses里加了spcomm,
    procedure TForm1.FormCreate(Sender: TObject);
    begin
        sp:=TComm.Create(self);
        sp.CommName:='com1';
        sp.BaudRate:=9600;
        sp.Parity:= None;
        sp.ByteSize:=_8;
        sp.StopBits:=_1;
        sp.StartComm;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
        b:array[0..9] of shortint;
        i:integer;
    begin
        for i:=0 to 9 do
            b[i]:=i+48;
        sp.WriteCommData(@b,10);
    end;
    结果接收到的是48,0,49,0.....
      

  5.   

    //tempStr : String ;
      sp.writeCommData(PChar(tempStr),Length(tempStr));