最初の 10 エントリにランダムに生成されたデータが含まれている Buffer ( uint32_t lBuffer[10]
) から抽出された 32 ビット CRC を、関数内で計算された計算済み CRCと比較する関数を作成していCheckCRC
ます。なぜ真の結果を出したくないのか、誰にも分かりますか? どんな助けでも大歓迎です!
関数コードは次のとおりです。
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;
}