delphi 与 232 串口的 问题
rbuf:array[1..MaxByte] of byte;
mmx:array[1..32] of byte;
s : byte ;
s1 : byte ;
s2 : byte ;
s3 : byte ;
s4 : byte ;
s5 : byte ;
s6 : byte ;
s7 : byte ;
s8 : byte ;
s9 : string ;
mmx[1]:=rbuf[1];
if mmx[1] = 165 then
begin
mmx[2]:=rbuf[2];
if mmx[2] = 35 then
Edit28.Text := '前行' ;
if mmx[2] = 50 then
Edit28.Text := '后行' ;
mmx[3] := rbuf[3] ;
mmx[4] := rbuf[4] ;
s := rbuf[3] + rbuf[4] ;
Edit5.Text := IntToStr(s)+'km' ;
mmx[5] := rbuf[5] ;
mmx[6] := rbuf[6] ;
s1 := rbuf[5] + rbuf[6] ;
Edit3.Text := IntToStr(s1) +'km/h' ;
mmx[7] := rbuf[7] ;
mmx[8] := rbuf[8] ;
s2 := rbuf[7] + rbuf[8] ;
Edit18.Text := IntToStr(s2) + 'r/min' ;
mmx[9] := rbuf[9] ;
mmx[10] := rbuf[10] ;
s3 := rbuf[9] + rbuf[10] ;
mmx[11] := rbuf[11] ;
mmx[12] := rbuf[12] ;
s4 := rbuf[11] + rbuf[12] ;
mmx[13] := rbuf[13] ;
mmx[14] := rbuf[14] ;
s5 := rbuf[13] + rbuf[14] ;
mmx[15] := rbuf[15] ;
mmx[16] := rbuf[16] ;
s6 := rbuf[15] + rbuf[16];
//保留位
mmx[17] := rbuf[17] ;
mmx[18] := rbuf[18] ;
s7 := rbuf[17] + rbuf[18];
//校验和
mmx[19] := rbuf[19] ;
mmx[20] := rbuf[20] ;
s8 := rbuf[19] + rbuf[20] ;
s9 := IntToStr(rbuf[1]+rbuf[2] + s + s1 + s2 + s3 + s4 + s5 + s6 + s7);
//s9 := IntToStr( rbuf[1]+ rbuf[2]+ rbuf[3]+ rbuf[4]+ rbuf[5]+ rbuf[6]+ rbuf[7]+ rbuf[8]+ rbuf[9]+ rbuf[10]+ rbuf[11]+ rbuf[12]+ rbuf[13]+ rbuf[14]+ rbuf[15]+ rbuf[16]+ rbuf[17]+ rbuf[18]) ;
Edit29.Text := s9;
校验和 怎么算都不对
[解决办法]
协议是什么?
是不是应该是
s:Word;s := rbuf[3]*256 + rbuf[4];