在线时间1 小时
UID3722967
注册时间2021-4-8
NXP金币0
该用户从未签到
新手上路
- 积分
- 16
- 最后登录
- 2021-4-9
|
发表于 2021-4-9 10:43:53
|
显示全部楼层
unsigned int MyFlexrayCrc(unsigned int shData , unsigned char bBitCount , unsigned int vCrcSize , unsigned int vCrcReg , unsigned int vCrcPolynomial )
{
int iLoop = 0x00;
unsigned int vNextBit = 0;
unsigned int vCrcNext = 0;
for( iLoop = 0x00 ; iLoop < bBitCount ; ++iLoop )
{
vNextBit = ( ( 0x00000001 << (bBitCount - 1 - iLoop) ) & shData ) >> (bBitCount - 1 - iLoop);
//qDebug("Corrent Bit[%04d]:%d",iLoop + 1,vNextBit);
vCrcNext = vNextBit ^( ( ( 0x00000001 << (vCrcSize - 1) ) & vCrcReg ) >> (vCrcSize - 1) ) ;
// Shift the CRC register left by one bit
vCrcReg = vCrcReg << 1 ;
// Apply the CRC polynomial if necessary
if( vCrcNext != 0x00 )
vCrcReg = vCrcReg ^ vCrcPolynomial ; // end if
} // end while loop
return vCrcReg;
}
|
|