SPCOMM控件问题,哪位大侠帮帮我吧 ( 积分: 50 )

  • 主题发起人 主题发起人 lhmlhl
  • 开始时间 开始时间
L

lhmlhl

Unregistered / Unconfirmed
GUEST, unregistred user!
1、为什么我用SPCOMM控件接不到单片机发来的十六进制的11和13,在线等
我的代码是:
rbuf:array[0..20] of byte;

viewstring:='';
// setlength(rbuf,bufferlength);

FillChar(rbuf,SizeOf(rbuf),$20);
move(buffer^,pchar(@rbuf)^,bufferlength);
for i:=0 to bufferlength-1 do

begin // viewstring:=viewstring+Bintohex(rbuf)+'';
viewstring:=viewstring+inttohex(rbuf,2)+'';
showmessage(inttostr(rbuf));
end;
viewstring:='接收'+viewstring;
memo1.lines.add(viewstring);
memo1.lines.add('');


2、哪位大侠有用SPCOMM接收串口发送的十六进制数据的源代码,发给我一份,要多少分给多少!
我的邮箱是tgzlxl@sohu.com

3、装上SPCOMM 版本2.5 控件 后编绎后会出现如下缠绎错误(我用的是delphi6.0):
[warning]spcomm.pas[337]:symbol'allocatehwnd'is deprecated
[warning]spcomm.pas[343]:symbol'deallocatehwnd'is deprecated
[hint]spcomm.pas[207]:private symbol'setparity'declared but never used
怎么回事呀,是不是版本不兼容啊
 
1、为什么我用SPCOMM控件接不到单片机发来的十六进制的11和13,在线等
我的代码是:
rbuf:array[0..20] of byte;

viewstring:='';
// setlength(rbuf,bufferlength);

FillChar(rbuf,SizeOf(rbuf),$20);
move(buffer^,pchar(@rbuf)^,bufferlength);
for i:=0 to bufferlength-1 do

begin // viewstring:=viewstring+Bintohex(rbuf)+'';
viewstring:=viewstring+inttohex(rbuf,2)+'';
showmessage(inttostr(rbuf));
end;
viewstring:='接收'+viewstring;
memo1.lines.add(viewstring);
memo1.lines.add('');


2、哪位大侠有用SPCOMM接收串口发送的十六进制数据的源代码,发给我一份,要多少分给多少!
我的邮箱是tgzlxl@sohu.com

3、装上SPCOMM 版本2.5 控件 后编绎后会出现如下缠绎错误(我用的是delphi6.0):
[warning]spcomm.pas[337]:symbol'allocatehwnd'is deprecated
[warning]spcomm.pas[343]:symbol'deallocatehwnd'is deprecated
[hint]spcomm.pas[207]:private symbol'setparity'declared but never used
怎么回事呀,是不是版本不兼容啊
 
1.
是outx_xonxoffflow 和 inx_xonxoffflow
属性的设置问题, 他们为true时, 将#13 和 #11 作为了控制字符, 改为false
就可以了

2.
Procedure TfrmPower.Comm1ReceiveData(Sender:TObject; Buffer:Pointer;
BufferLength:Word);
Var
i:Integer;
Viewstring:String;
rbuf:Array[1..300] Of Byte;
bufflen:integer;
Begin
bufflen := 160;
If (bufferlength >= bufflen) Then
exit;
viewstring := '';
move(buffer^, rbuf, bufferlength);
For i := 1 To bufferlength Do
viewstring := viewstring + inttohex(rbuf, 2) + '';
//viewstring 就是十六进制的数据
End;

3.
未知
 
可为什么我在rbuf:array[0..n] of byte中的n设几都可以呀,怪了,比如我接收对方发来的15个字节的数据,为什么我在rbuf:array[0..n] of byte中的n设为1或其它都可以,为什么不提示溢出的错误
 
后退
顶部