有关CRC校验,有人知道这种是什么CRC校验吗

2019-08-14 06:13发布

电机驱动上的CRC校验,网上找的计算工具好像都不太相符
uint8_t CalcCRCByte(uint8_t u8Byte, uint8_t u8CRC)
{
        uint8_t i;
        u8CRC = u8CRC ^ u8Byte;
        for (i = 0; i < 8; i++)
        {
                if (u8CRC & 0x01)
                {
                        u8CRC = (u8CRC >> 1) ^ polynomial;
                }
                else
                {
                        u8CRC >>= 1;
                }
        }
                return u8CRC;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
月无缺
1楼-- · 2019-08-15 00:34
本帖最后由 月无缺 于 2017-8-23 11:17 编辑
mrbbn 发表于 2017-8-23 11:05
我自己根据代码用vc写了个CRC校验小程序,结果是对的,但是网上有网页的校验,设置了还是不对,想问问为 ...

你的设置不对,你试着改一下设置看看。
mrbbn
2楼-- · 2019-08-15 00:49
 精彩回答 2  元偷偷看……
月无缺
3楼-- · 2019-08-15 05:24
mrbbn 发表于 2017-8-23 11:21
怎么改?我就知道多项式和初始值该怎么设,其他都不太懂

我按照我的程序改了设置,得到的CRC值确实是对的。你按照你程序改一下网页的设置;要么就按照网页的设置,改一下程序, 对比一下,看问题出在哪里。
mrbbn
4楼-- · 2019-08-15 11:18
月无缺 发表于 2017-8-23 11:43
我按照我的程序改了设置,得到的CRC值确实是对的。你按照你程序改一下网页的设置;要么就按照网页的设置 ...

我也改不了程序,主楼里的crc校验码是电机驱动器自己带的,不能改,改了发消息给驱动它就收不到,但是改了网页的数值校验结果不对
月无缺
5楼-- · 2019-08-15 15:13
mrbbn 发表于 2017-8-23 14:09
我也改不了程序,主楼里的crc校验码是电机驱动器自己带的,不能改,改了发消息给驱动它就收不到,但是改 ...

那我也不清楚怎么解决了,你用电机驱动程序算出来的值是多少?用网站算出来的值是少?用你VC算出来的值是多少?你对比一下看看,有什么不同的地方,有什么关联的地方。
mrbbn
6楼-- · 2019-08-15 15:18
月无缺 发表于 2017-8-23 16:05
那我也不清楚怎么解决了,你用电机驱动程序算出来的值是多少?用网站算出来的值是少?用你VC算出来的值是 ...

我用vc算出来的,发给驱动器是对的,跟驱动器的上位机发出来的校验码是一样的,但是网页算出来是不一样的。

一周热门 更多>