📄 crclrc.c
字号:
/*#########################################################################
Copyright (c) 2005,
All rights reserved.
File name : fpubdef.h
Description :公共定义
Version :1.00
Author :
Complete Date :2006-06-05
Function List :
History :
_________________________________________________________________________
DATE AUTHOR VERSION DESCRIBE
-------------------------------------------------------------------------
2005-06-05 zlz Ver1.00 Create
#########################################################################*/
#include "crclrc.h"
/*puchMsg 要进行CRC校验的消息 */
/*INT16 usDataLen 消息中字节数 */
INT16 CRC16(BYTE *puchMsg, INT16 usDataLen)
{
BYTE uchCRCHi = 0xFF ; /* 高CRC字节初始化 */
BYTE uchCRCLo = 0xFF ; /* 低CRC 字节初始化 */
INT16 uIndex ; /* CRC循环中的索引 */
while (usDataLen--) /* 传输消息缓冲区 */
{
uIndex = uchCRCHi ^ *puchMsg++ ; /* 计算CRC */
uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex];
uchCRCLo = auchCRCLo[uIndex] ;
}
return (uchCRCHi << 8 | uchCRCLo) ;
}
int Mb_calcul_crc(BYTE trame[],int n)
{
unsigned int crc,i,j,carry_flag,a;
crc=0xffff;
for (i=0;i<n;i++)
{
crc=crc^trame[i];
for (j=0;j<8;j++)
{
a=crc;
carry_flag=a&0x0001;
crc=crc>>1;
if (carry_flag==1)
crc=crc^0xa001;
}
}
return crc;
}
BYTE LRC(BYTE *auchMsg, INT16 usDataLen)
{
BYTE uchLRC = 0 ;
while (usDataLen--)
{
uchLRC += *auchMsg;
auchMsg++;
}
return ((BYTE)(-((char)uchLRC)));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -