关于crc校验

LongBow007 2010-10-05 05:15:27
0x11
0x10
0x00
0x01
0x00
0x02
0x04
0x00
0x0A
0x01
0x02

请问上面一组数据crc校验值是多少?

说明书给出的crc校验值是 0x6c 0xf0
可我算的是 0x6d 0xd6
...全文
117 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongBow007 2010-10-05
  • 打赏
  • 举报
回复
问题已解决 谢谢关注
LongBow007 2010-10-05
  • 打赏
  • 举报
回复
应当是我把C语言转成C#是出错误了。

有没有人能帮我把上面的转成C#?
LongBow007 2010-10-05
  • 打赏
  • 举报
回复
C语言

typedef union
{
UINT16 val;
struct
{
UINT16 bit0 : 1;
UINT16 bit1 : 1;
UINT16 bit2 : 1;
UINT16 bit3 : 1;
UINT16 bit4 : 1;
UINT16 bit5 : 1;
UINT16 bit6 : 1;
UINT16 bit7 : 1;
UINT16 bit8 : 1;
UINT16 bit9 : 1;
UINT16 bit10: 1;
UINT16 bit11: 1;
UINT16 bit12: 1;
UINT16 bit13: 1;
UINT16 bit14: 1;
UINT16 bit15: 1;
} bits;
} TCRCRegs;
TCRCRegs regs;

// pBuf:要参与计算的消息缓冲区
// nDataLen:CRC 要处理的字节的数量(消息缓冲区长度)
UINT16 CRC1(UINT8 *pBuf, UINT16 nDataLen)
{
int i;
UINT8 j,nTest;

regs.val = 0xFFFF;
for (i = 0; i < nDataLen; i++)
{
regs.val ^= *pBuf++;
for (j = 0; j < 8; j++)
{
nTest = (regs.bits.bit0) ? 0x01:0x00;
regs.val >>= 1;
if (nTest == 1)
regs.val ^= 0xA001;
}
}
return regs.val;
}

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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