1) скорость
2) четность нечетность (pariry)
3) стоповые биты
Еще есть вероятность, неправильно считаешь CRC16 (не тот полином используешь)
В мадбасе есть команда для проверки связи с устройством. Код не помню, но смысл такой устройство отправляет то, что приняло, если CRC верен.
Если не секрет, что за прибор???
Я всегда высчитывал CRC по данной проге, если не оговаривалось исключений. Програ писалась для контроллера на с, но интерпретировать на python думаю не составит труда.
WORD CRC (BYTE *data, INT lenght)
{
INT i, j;
WORD CRC = 0xFFFF, bit;
for(i=0; i<lenght; i++)
{
CRC ^= (WORD)data[i];
for(j=0; j<8; j++)
{
bit = CRC & 0x0001;
CRC >>= 1;
if(bit) CRC ^= 0xA001;
}
}
return CRC;
}