Всё работает, но я задался таким вопросом. Как переделать функцию чтоб данные хранились не с плавающей точкой, а как целое число?
Например в int хранится температура в виде "2646", что равно реальной температуре "26,46". В даташите к датчикам BMP280 есть пример но как сделать именно для SHT30 не пойму.
Подскажите как выполнять такие преобразования не используя типы с плавающей точкой?
Спойлер
Код: Выделить всё
float Tc; //температура в градусах цельсия
float Tf; //температура в фаренгейтах
float RH; //влажность в %
uint8_t data[6] = { 0 };
uint16_t St, Srh;
St = (data[0] << 8) | data[1]; //значение температуры, полученное с датчика SHT30
Tc = -45.0 + 175.0 * ((float) St / 65535.0);
Tf = -49.0 + 315.0 * ((float) St / 65535.0);
Srh = (data[3] << 8) | data[4]; //значение влажности, полученное с датчика SHT30
RH = 100.0 * ((float) Srh / 65535.0);
P.P.S. это не реальная необходимость, а скорее из "спортивного" интереса.


