Цитата(skyled @ Jul 1 2010, 13:05)

...но значения всеравно разные. Что делать?
Вначале - определить на которой из сторон ошибка. Для чего: посчитать значение суммы на бумажке и сравнить с результатом на обеих сторонах.
Цитата(skyled @ Jul 1 2010, 13:05)

Код
while (len--)
crc = Crc8Table[crc ^ buf_rx[len]];
Так - нельзя! Байт buf_rx[15] не будет участвовать в формировании контрольной суммы!
P.S. Зря полезли править процедуру подсчета контрольной суммы - там-то всё было верно.
P.P.S. Сколько Вы байт передаёте в сообщении? По-моему - шестнадцать (с buf_rx[0] по buf_rx[15] включительно). Почему при вызове процедуры указываете длину - пятнадцать?