AM2320 CRC код

R1on
Offline
Зарегистрирован: 25.08.2016

Добрый День

В ходе изучения сенсора температуры и влажности АМ2320 возник вопрос касательно CRC кода. То есть какую он несет функцию (предполагаю как контрольная сумма при передачи данных от сенсора).

Может кто то пояснить метод его расчета (CRC code calculation method)? Мои познания английского не дают полной картинки из datasheet'а AM2320 или хотябы пояснить нижеследующий код.

unsigned int CRC16(byte *ptr, byte length) 
{
  unsigned int crc = 0xFFFF;
  uint8_t s = 0x00;
  while(length--)
  {
    crc ^= *ptr++;
    for (s = 0; s < 8; s++)
    {
      if ((crc & 0x01) != 0)
      {
        crc >>= 1;
        crc ^= 0xA001; 
      } else crc >>= 1; 
    } 
  }
  return crc; 
}

Заранее спасибо

MacSim
Offline
Зарегистрирован: 28.11.2012

как контрольная сумма для проверки правильности передачи

погуглите. если не ошибаюсь это есть сумма семи байт в степенях. не помню в 2 или в разных.