Датчик давления отдаёт 300, а прошивка читает 11265
По даташиту датчик возвращает 16-битное значение старшим байтом вперёд. По I2C пришло buf[0] = 0x01, buf[1] = 0x2C. Код на Cortex-M:
uint16_t raw;
memcpy(&raw, buf, 2);
В raw оказывается 11265. Как прочитать значение переносимо?
- raw = (uint16_t)((buf[0] << 8) | buf[1]);
- raw = (uint16_t)((buf[1] << 8) | buf[0]);
- raw = *(uint16_t *)buf;
- raw = (uint16_t)(buf[0] + buf[1]);
