地磅串口数据读取
HT9800地磅通讯协议:
串行通讯方式:连续发送称重值
波特率:1200/2400/4800/9600可选
数据格式:10位:1位起始位(0),8位数据位(D0-D7),1位结束位(1)。
串行通讯发送重量数据为ASCII码,每次发送12个字节。其定义如下:
第1字节:起始位(02H)
第2字节:状态字A
第3字节:状态字B
第4字节:状态字C
第5字节:6位重量值的高位
:
第10字节:6位重量值的低位
第11字节:回车(0DH)
第12字节:换行(0AH)
用Delphi7+Pcomm编程读取数据,过程如下:
function ReceiveStr(Port: longint):string;
var
rLen: longInt;
PBuf: Pchar;
Buf: string;
begin
Result := '';
PBuf := Pchar(StringOfChar(' ',1024));
rLen := sio_read(Port,PBuf,1024);
if rLen = 0 then Exit;
Buf := StrPas(PBuf);
Buf := Copy(Buf,1,rLen);
Result := Buf;
end;
运行结果显示收到的数据为乱码字符,请各位指教。