关于crc16校检

freedomfly911 2009-04-20 09:25:21
请问,求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比较,还是查看是否为零?
不胜感激!
...全文
61 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
freedomfly911 2009-04-23
  • 打赏
  • 举报
回复
我的数据格式是: 帧头(2字节)+长度码(1)+方位码(2)+CRC码(2)+帧尾(2)
数据已经放入BYTE buf[9]中,请问如何给长度码和方位码做CRC16校检。
麻烦具体点,网上的代码大多不适合我的数据结构,谢谢了!
freedomfly911 2009-04-21
  • 打赏
  • 举报
回复
补充一下代码
主函数:
声明 BYTE buf[9];
其中buf[2]是我需要校检的数据,请问
WORD CalculateCRC( BYTE *RecvDataBuf, WORD RecvDataSize) 中两个参数该输入什么
freedomfly911 2009-04-21
  • 打赏
  • 举报
回复
在线等ing 求教,谢谢!

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧