1,593
社区成员
发帖
与我相关
我的任务
分享
function GetParityBit(buf:array of byte):WORD; //buf为截获的8个长度包含CRC校验码的数组
var
wRet:WORD; //CRC寄存器
iIndex:integer;
iLooper:integer;
begin
//计算出接收数据的校验值
wRet := $FFFF;
for iIndex :=0 to length(buf)-3 do
begin
wRet := WORD(Hi(wRet) xor buf[iIndex]);
for iLooper := 0 to 7 do
begin
if (wRet and $0001) = 1 then
wRet := (wRet shr 1) xor $A001
else
wRet := wRet shr 1;
end;
end;
result:=wRet; //为前六位的CRC校验码
end;