Добавил проверку на правильность соответствия приёма трёх байт. Вот так заработает?

Код:
bool SYNC_1986_handshake()
{
  while (Serial.available()) Serial.read();

  for (int i = 0; i < 512; i++) {
    Serial.write(0);
  }
  Serial.flush();

  const int NumBytesToReceive = 3; // количество байт которые ждем в ответ
  int syncSuccess1986 [3] = {0x0D, 0x0A, 0x3E}; //для проверки ответа от 1986ВЕ91
  int numBytesReceived = 0; // здесь храним количество принятых байт
  for (int istep = 0; istep < 5; ++istep) // делаем несколько попыток считать ответ
  {
    while (Serial.available() && numBytesReceived < NumBytesToReceive) // читаем все что уже есть во входном буфере
    {
      byte receivedByte = Serial.read(); // можно сохранить это где нибудь чтобы проверить значение
      if (receivedByte != syncSuccess1986[numBytesReceived]); //парсим принятый байт на правильное совпадение с ответом 1986
      {
        return false; //байт не совпал - выходим с ошибкой
      }
      ++numBytesReceived; // храним количество принятых байт
    }

    if (numBytesReceived == NumBytesToReceive) // получили все что нужно
    {
      return true; // возвращаем успех
    }
    delay(10);
  }

  return false; // возвращаем неудачу
}