Код для замены CRC32 включен в существующую библиотеку - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь CRC32 с STM32L151. Я написал код с существующей библиотекой. Но я не хочу использовать код CRC32, включенный в существующую библиотеку. Я хочу создать свой собственный. Как я могу получить правильный код из этого кода?

Я не посмотрел расчеты CRC32 на листе данных. Дайте мне знать, если вы знаете, как рассчитать.

uint16_t Checksum(uint8_t *check_buffer, uint8_t buffer_legnth) {
  uint8_t i;
  uint16_t crc_result = 0;

  LL_CRC_ResetCRCCalculationUnit(CRC);

  for (i = 0; i < buffer_legnth; i++) {
    LL_CRC_FeedData32(CRC, check_buffer[i]);
  }

  crc_result = (LL_CRC_ReadData32(CRC) & 0x0000FFFF);

  // printf("CRC : %X \r\n", crc_result);

  return crc_result;
}

union Crc_Data {
  uint8_t Crc_Data_8[2];
  uint16_t Crc_Data_16;
}

void main() {
  union Crc_Data Crc_Data;
  uint8_t test_packet[8] = {0x10, 0x20, 0x30, 0xB9, 0x53, 0x23, 0xA3};
  Crc_Data.Crc_Data_16 = xcrc32((uint8_t *)&test_packet, 7);
  printf("CRC = %02x %02x \r\n", Crc_Data.Crc_Data_8[0],
         Crc_Data.Crc_Data_8[1]);
}
...