电机驱动上的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;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
你的设置不对,你试着改一下设置看看。
我按照我的程序改了设置,得到的CRC值确实是对的。你按照你程序改一下网页的设置;要么就按照网页的设置,改一下程序, 对比一下,看问题出在哪里。
我也改不了程序,主楼里的crc校验码是电机驱动器自己带的,不能改,改了发消息给驱动它就收不到,但是改了网页的数值校验结果不对
那我也不清楚怎么解决了,你用电机驱动程序算出来的值是多少?用网站算出来的值是少?用你VC算出来的值是多少?你对比一下看看,有什么不同的地方,有什么关联的地方。
我用vc算出来的,发给驱动器是对的,跟驱动器的上位机发出来的校验码是一样的,但是网页算出来是不一样的。
一周热门 更多>