读书人

使用spcomm中串口发生的有关问题

发布时间: 2012-03-09 16:54:57 作者: rapoo

使用spcomm中串口发生的问题
我的通信协议中需要返回4字节的序列号,但是在使用delphi7版本的时候比如本来应该返回11 05 00 02,现在只返回05 00 02。用其他串口助手可以

[解决办法]
既然你已经加分,那就说明你有诚意。我给你贴出我的代码:


function byteTo16Str(const rbuf:array of byte;len:integer):string;
var
i:integer;
begin
result:='';
for i := 0 to len-1 do
result:=result+inttohex(rbuf[i],2);//转换成十六进制数
end;


procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
rbuf:array[1..255] of byte;
RVal:string;
begin
move(buffer^,pchar(@rbuf)^,bufferlength);
RVal:=byteTo16Str(rbuf,bufferlength);
showmessage(rval);
在这里看看RVal的值,会不会丢?
end;

[解决办法]

探讨
11 被串口当成了默认的控制码了,换个控件吧,cport3

[解决办法]
当然也可以直接在Comm的属性查看器中将这两个属性设为False

读书人网 >.NET

热点推荐