//modbus CRCУÑé
UINT16 Modbus_CRC16(UINT16 * Buff_addr,UINT16 len)
{
UINT16 tmCRC;
UINT16 NewCRC;
UINT16 i=0;
UINT8 j=0;
UINT8 Tmp=0;
tmCRC=0xFFFF;
for(i=0;i<len;i++)
{
tmCRC^= * (Buff_addr+i);
for (j=0;j<8;j++)
{
Tmp=tmCRC&0x0001;
tmCRC=tmCRC>>1;
if(Tmp)tmCRC=(tmCRC^0xA001);
}
}
NewCRC=tmCRC;
return (NewCRC);
}
|