functioncrc=crc8(data)% data: uint8 数组poly=uint8(hex2dec('07'));% 多项式crc=uint8(0);% 初始值forbyte=data crc=bitxor(crc,byte);% 与输入异或fori=1:8ifbitand(crc,128)% 检查最高位crc=bitxor(bitshift(crc,1),poly);elsecrc=bitshift(crc,1);%正数表示左移,负数表示右移endendendend用法示例:
test_data=uint8([17,295]);checknum=crc8(test_data);A=dec2hex(checknum);