为什么我用SPCOMM控件接不到单片机发来的十六进制的11和13 ( 积分: 0 )

  • 主题发起人 主题发起人 xxgzlkc
  • 开始时间 开始时间
X

xxgzlkc

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么我用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('');
 
为什么我用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('');
 
初始化时加上这两句试试:

BaseStation.Inx_XonXoffFlow := False; //处理流控制字符,防止将接收缓存中的字符当作控制字符
BaseStation.Outx_XonXoffFlow := False;


我遇到过这个问题
 
type
PBArray = ^TBArray;
TBArray = array[0..20] of Byte;
var
Buf: PBArray;
i: Integer;
Line: String;
a : array [0..4] of Byte;

begin
Buf:=PBArray(Buffer);
for i:=1 to BufferLength do
Line:=Line+InttoHex(Buf[i-1],2);

if Line ='00400131FF' then
begin
end;
 
我不是不想给分,我不知怎么给你们分
 
后退
顶部