delphi中关于地磅读数的问题:我用SPCOMM写了个读取金鸟XK3130的地磅的数据,地磅的设置传输方式是连续发送,我在超级终端中可以接收到COM1口发送过来的数据,但是用程序怎么写都不行(我没做过,一点都不懂!),波特率:1200,COM1,偶校验,数据位:7位,现贴出代码:
参数设置:
Comm1.BaudRate:=1200;
Comm1.ByteSize:=7;
Comm1.CommName:=com1;
Comm1.ParityCheck:=True;
Comm1.StopBits:=1;procedure TFrmComm.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;
begin
Viewstring:='';
Move(buffer^,pchar(@rbuf)^,BufferLength);
for i:=4 to 10 do
begin
Viewstring:=Viewstring+IntToStr(rbuf[i])+'';
Viewstring:='接收'+Viewstring;
Memo1.Lines.Add(Viewstring);
Memo1.Lines.Add('');
end;
Comm1.StopComm;
end;
好像完全都不对,我想要的结果是:当地磅上显示18.4,我取得的数据就是18.4,不知道怎么搞了,请兄弟们帮忙啊!我把我剩余的分全给出去!就剩100分了
参数设置:
Comm1.BaudRate:=1200;
Comm1.ByteSize:=7;
Comm1.CommName:=com1;
Comm1.ParityCheck:=True;
Comm1.StopBits:=1;procedure TFrmComm.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;
begin
Viewstring:='';
Move(buffer^,pchar(@rbuf)^,BufferLength);
for i:=4 to 10 do
begin
Viewstring:=Viewstring+IntToStr(rbuf[i])+'';
Viewstring:='接收'+Viewstring;
Memo1.Lines.Add(Viewstring);
Memo1.Lines.Add('');
end;
Comm1.StopComm;
end;
好像完全都不对,我想要的结果是:当地磅上显示18.4,我取得的数据就是18.4,不知道怎么搞了,请兄弟们帮忙啊!我把我剩余的分全给出去!就剩100分了
//串口关闭:Comm1.StopComm;
//串口接受数据:
procedure TFrmComm.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;
begin
Viewstring:='';
Move(buffer^,pchar(@rbuf)^,BufferLength); //将数据复制到rbuf处
for i:=4 to 10 do //根据协议解析数据
begin
Viewstring:=Viewstring+IntToStr(rbuf[i])+'';
Viewstring:='接收'+Viewstring;
Memo1.Lines.Add(Viewstring);
Memo1.Lines.Add('');
end;
//Comm1.StopComm;
end;
Move(buffer^,pchar(@rbuf)^,BufferLength);