请问,求crc函数
WORD CalculateCRC( BYTE *RecvDataBuf, WORD RecvDataSize)
{
WORD iInitCrc = 0x0000; // CRC
WORD iIndex = 0x0000; // 数组下标
int iRow = 0;
int iCol = 0;
for( int i=0; i<RecvDataSize; i++)
{
iIndex = LOBYTE(iInitCrc) ^ (RecvDataBuf[i]&0xFF); // CRC地址
iRow = HIBYTE(iIndex);
iCol = LOBYTE(iIndex);
iInitCrc = (gCRCLow[iRow][iCol] ^ ( HIBYTE(iInitCrc)))&(0x00FF); // CRC低字节
iInitCrc = iInitCrc | (gCRCHight[iRow][iCol]<<8)&(0xFF00);
}
return iInitCrc;
}
我需要传入buf[2],但是系统报错,'CCommtestDlg::CalculateCRC' : cannot convert parameter 1 from 'BYTE' to 'BYTE []'
怎么办? 谢谢 这个求crc校检的代码,得出crc之后是与报文中的crc比较,还是查看是否为零?
不胜感激!
WORD CalculateCRC( BYTE *RecvDataBuf, WORD RecvDataSize)
{
WORD iInitCrc = 0x0000; // CRC
WORD iIndex = 0x0000; // 数组下标
int iRow = 0;
int iCol = 0;
for( int i=0; i<RecvDataSize; i++)
{
iIndex = LOBYTE(iInitCrc) ^ (RecvDataBuf[i]&0xFF); // CRC地址
iRow = HIBYTE(iIndex);
iCol = LOBYTE(iIndex);
iInitCrc = (gCRCLow[iRow][iCol] ^ ( HIBYTE(iInitCrc)))&(0x00FF); // CRC低字节
iInitCrc = iInitCrc | (gCRCHight[iRow][iCol]<<8)&(0xFF00);
}
return iInitCrc;
}
我需要传入buf[2],但是系统报错,'CCommtestDlg::CalculateCRC' : cannot convert parameter 1 from 'BYTE' to 'BYTE []'
怎么办? 谢谢 这个求crc校检的代码,得出crc之后是与报文中的crc比较,还是查看是否为零?
不胜感激!
解决方案 »
- 关于获取句柄的问题
- mfc tab控件如何自适应切分窗口大小
- 如何获取Edit控件中输入的数据
- 200分求王艳平《windows程序设计》附书源代码。
- InsertColumn( m_iNumColumns++, strHeading, strLvcfmt, iWidth ) == -1 LVCFMT_CENTER不能用变量代替??
- [求助]用CSocket类连续发送数据是否要有时间间隔?
- 为什么我根据下面的文章学习写的键盘HOOK。不能钩住系统级别的按键
- 画图的问题,请大家帮忙啊!
- How To get Hard Disk Information
- 如何处理内部组件的事件?
- 如何保留文件长度清空文件?有没有函数或只能从头到尾赋0?
- mfc里面基于对话框的程序,添加了2个对话框资源A,B,怎么分别显示?
主函数:
声明 BYTE buf[9];
其中buf[2]是我需要校检的数据,请问
WORD CalculateCRC( BYTE *RecvDataBuf, WORD RecvDataSize) 中两个参数该输入什么
数据已经放入BYTE buf[9]中,请问如何给长度码和方位码做CRC16校检。
麻烦具体点,网上的代码大多不适合我的数据结构,谢谢了!