一. CRC16算法
首先在源文件头文件加入表值:
然后在文件中加入下列函数:
[c] view plaincopy- //////////////////////////////////////////////////////////////////////////
- // 函数功能: CRC16效验
- // 输入参数: pDataIn: 数据地址
- // iLenIn: 数据长度
- // 输出参数: pCRCOut: 2字节校验值
- void CCRCDlg::CRC16(const CHAR* pDataIn, int iLenIn, WORD* pCRCOut)
- {
- WORD wResult = 0;
- WORD wTableNo = 0;
-
- for(int i = 0; i < iLenIn; i++)
- {
- wTableNo = ((wResult & 0xff) ^ (pDataIn[i] & 0xff));
- wResult = ((wResult >> 8) & 0xff) ^ wCRC16Table[wTableNo];
- }
-
- *pCRCOut = wResult;
- }
二.CRC16(MODBUS)
三.CRC16(CCITT的0XFFFF)
联系客服