처음 10 개의 항목이 임의로 생성 된 버퍼 (uint32_t lBuffer[10]
)에서 추출한 32 비트 CRC와 CheckCRC
함수 내에서 계산 된 계산 된 CRC를 비교하는 함수를 작성합니다. 왜 진정한 결과를주고 싶지 않은지 누가 알 수 있습니까? 어떤 도움을 많이 주시면 감사하겠습니다!확인 함수 비교 문제
bool CRC32::CheckCRC(const uint32_t* plData , uint32_t lLength, uint32_t previousCrc32)
{
bool FlagPass;
uint32_t lCalcCRC,lMsgCRC;
//Msg CRC needs to be extracted first
lMsgCRC = plData[lLength-1];
//Newly calculated CRC
//lCalcCRC = calculate_CRC32(plData,lLength-1,lInitCRC);
lCalcCRC = ~previousCrc32;
unsigned char* current = (unsigned char*) plData;
while (lLength--)
{
lCalcCRC = (lCalcCRC >> 8)^crc_table[(lCalcCRC & 0xFF)^*current++];
}
lCalcCRC = ~lCalcCRC;
if (lCalcCRC == lMsgCRC)
{
FlagPass = true;
}
else
{
FlagPass = false;
}
return FlagPass;
}
'return lCalcCRC == lMsgCRC; – Roddy