Я читал о полезном веб-сайте с калькулятором CRC, который описан в других статьях, который прекрасно работает, но, к сожалению, код на языке C не дублирует возможности:
http://www.zorc.breitbandkatze.de/crc.html
Следующая конфигурация требуется для CRC16-CCITT (x.25), формата, с которым я работаю для датчика и поддерживающего электронную сборку:
Тем не мение, иногда неверный CRC вычисляется с использованием кода C, в частности, но правильно выходит с онлайн-калькулятором
Вы можете найти код C по следующей ссылке, но не забудьте изменить параметры конфигурации в соответствии с приведенным выше:
http://www.zorc.breitbandkatze.de/crctester.c
Вот пример пакета, размещенного в коде C:
const char string[] = { "\x82\x2f\x0a\x40\x00\x00\x7a\x44" };
Это возвращает неправильный CRC «0x1e4e».
и в онлайн калькуляторе:
«% 82% 2f% 0a% 40% 00% 00% 44% 7a»
Который возвращает правильный CRC «0xd831».
Кроме того, вам понадобится пакет, который работает с ОБА онлайн-калькулятором и кодом С, который следует ниже.
В коде C:
const char string[] = { "\x81\x2f\x0b\x4f\xd8\xab\x0d\x42\xed" };
И в онлайн калькуляторе:
«% 81% 2f% 0b% 4f% D8% AB% 0d% 42% изд»
Кто-нибудь знает, почему это происходит, и как код C может быть исправлен, чтобы это исправить?
Спасибо вам большое за помощь!
Задача ещё не решена.
Других решений пока нет …