uint16_t modbus_crc16(uint8_t *data, uint16_t length)
{
uint16_t crc = 0xffff;
u8 t = 0;
uint16_t R = 0xa001;
while(length){
crc = crc ^ *data++;
for(int a=0; a<8; ){
t = crc % 2;
crc = crc / 2;
a++;
if(t == 1){
crc = crc ^ R;
}
}
length--;
}
return crc;
}
10-15
271
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-04
880
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-24