地磅串口数据读取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;运行结果显示收到的数据为乱码字符,请各位指教。------解决方案--------------------用CPort,直接读str
------解决方案--------------------这是我用MScomm做的通讯,供参考,差别应该不大。var iInputLen, j : Integer; sValue : string; RecStr:=myMSComm.Input; sValue:=''; for j:=0 to iInputLen - 1 do sValue:=sValue+IntToHex(RecStr[j],2); //用日志记录通讯格式 WriteCommLog(sValue); sValue:=sValue[9]+sValue[10]+sValue[7]+sValue[8]+sValue[5]+sValue[6];