} ;
unsigned short int CRC16 (unsigned char *puchMsg, unsigned short int
usDataLen)
{
unsigned char uchCRCHi = 0xFF; /* byte alto del CRC inicializado */
unsigned char uchCRCLo = 0xFF; /* byte bajo del CRC inicializado */
unsigned uIndex ;
*/
}
Consulte también
Existen muchas formas de calcular una suma de comprobación CRC. Para obtener más
información, consulte el sitio Web de organización Modbus (http://www.modbus.org/), que
contiene descripciones detalladas y ejemplos de programación.
MAG 8000 Modbus RTU
Instrucciones de servicio, 04/2016, A5E03828422-AA
while(usDataLen--)
{
uIndex = uchCRCHi ^ *puchMsg++ ; /* calcular el CRC */
uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ;
uchCRCLo = auchCRCLo[uIndex] ;
}
#ifdef INTEL_LIKE_PROCESSOR
return (unsigned short int)((uchCRCLo << 8) | uchCRCHi);
#else
return (unsigned short int)((uchCRCHi << 8) | uchCRCLo);
#endif
/* indica en la tabla de búsqueda CRC
/* búfer de mensajes de paso */
Anexo
B.2 Cálculo CRC
87