用Spcomm , 在收串口数据时,发现十六进制数'11'收不进来! 代码如下::::(100分)

  • 主题发起人 主题发起人 vericky
  • 开始时间 开始时间
V

vericky

Unregistered / Unconfirmed
GUEST, unregistred user!
var Rbuf : array [1..1024] of byte ;
...................
procedure TForm1.Comm2ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var i : integer ;
StringGet : string ;
begin
StringGet :='(R): ';
move (buffer^ ,Rbuf,BufferLength);
For i := 1 to BufferLength do
StringGet := StringGet + inttohex(Rbuf,2) + ' ';
memo1.Lines.Add (StringGet) ;
end;

在收进来的所有数据中,唯独'11'不能收取,
比如,对端发送'AB CD 23 11 23' ,我只能收到'AB CD 23 23', '11'没了?
被spcomm 吃了? 谁知道怎么回事?

spcomm用了这么长时间了, 应该没问题吧? 我的系统是win 98 + delphi 5 .

急死我了!
 
我的可以收!
rbuf:array [0..65535] of byte;
procedure TsendForm.Comm_sendReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;
s:string;
begin
move(buffer^,pchar((@rbuf)^),bufferlength);
s:='';
for i:=0 to bufferlength-1 do begin
s:=s+inttohex(rbuf,2)+' ';
end;
m_reveice.Lines.Add(s);
end;
 
我照原样把代码抄到我的机器上, 就收不到'11' , 可恶的11 ,就会欺负我!
 
是否你发的方法不正确啊?
我刚才试过,是可以收的啊!
 
难道我的情况是特例? 各位的的配置都是什么呢?
'11'会不会被机器误认为是信令信号而没有被接受?
我在receive处加断点, 发现如果发'11' 那么压根就没有触发这个事件
 
属性没设对, 给分啦
 
后退
顶部