Я пытаюсь 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]);
}