Это полный пакет с последними двумя байтами расчета CRC
54 A1 4A 03 E7 03 D4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 CA
на данный момент я добавляю байт синхронизации, который равен 0x54, если я не добавляю байт синхронизации, пакет будет
54 A1 4A 03 E7 03 D4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 65 CF
оба значения CRC (64 CA и& 65 CF) неверны. Я должен был получить 72 DC и& 99 3F соответственно.
это код, который я использую для вычисления бита CRC16
Код: Выделить всё
private static ushort CRCCalc(byte[] data)
{
ushort wCRC = 0;
for (int i = 1; i < data.Length; i++)
{
wCRC = (ushort)(wCRC ^ (data[i]
Подробнее здесь: [url]https://stackoverflow.com/questions/39961631/crc-16-bit-polynomial-0x1021-ccitt-calculation-with-initial-value-0x0000[/url]
Мобильная версия