串口接收数据问题?(30分)

  • 主题发起人 主题发起人 dreamya
  • 开始时间 开始时间
D

dreamya

Unregistered / Unconfirmed
GUEST, unregistred user!
请问我要用串口接收一组数据,并要把它存入一个数组?谢谢
var sbuf:variant;
osbuf:olevariant;
begin
osbuf:=mscomm.input;
sbuf:=osbuf;
数组:=sbuf;(怎么办)
 
mscomm没用过,不大清楚,
要不用spcomm试试
 
var
recstr :olevariant;

TEmStr:string;
LenInBuf,i:Integer;
begin
if Mscomm1.CommEvent = 2 then
begin
recstr := Mscomm1.Input ;
if VarIsArray(recstr) then
begin
LenInBuf:=VarArrayHighBound(recstr,1)+1;
TemStr:='';
sleep(500);
for i:=1 to LenInBuf do
TemStr:=TemStr+Chr(Byte(recstr[i-1]));
Memo1.Text:= Memo1.Text + TemStr;
end;
end;
end;
 
不知道你用的是哪一种传输模式,如果是二进制就需要转换。
如果不是,建议把接收缓冲区申明为pchar
然后用strpcopy把其中的内容考到一个string变量里就行了
 
把缓冲区设置为 array of byte 就可以
 
后退
顶部