1 /* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * 4 * HDF is dual licensed: you can use it either under the terms of 5 * the GPL, or the BSD license, at your option. 6 * See the LICENSE file in the root of this repository for complete details. 7 */ 8 9 #ifndef HUMIDITY_SHT30_H 10 #define HUMIDITY_SHT30_H 11 12 #include "sensor_config_parser.h" 13 #include "sensor_humidity_driver.h" 14 15 /* Humidity registers addr */ 16 #define SHT30_HUM_DATA_ADDR 0x240B // Data 17 18 /* Humidity data */ 19 #define SHT30_HUM_DATA_BUF_LEN 6 20 #define SHT30_HUM_VALUE_INDEX_ZERO 0 21 #define SHT30_HUM_VALUE_INDEX_ONE 1 22 #define SHT30_HUM_VALUE_INDEX_TWO 2 23 #define SHT30_HUM_VALUE_INDEX_THREE 3 24 #define SHT30_HUM_VALUE_INDEX_FOUR 4 25 #define SHT30_HUM_VALUE_INDEX_FIVE 5 26 27 #define SHT30_HUM_SLOPE 10000 // 100.0 * 100 28 #define SHT30_HUM_RESOLUTION 0xFFFF 29 #define SHT30_HUM_SHFIT_1_BIT 1 30 31 /* Humidity crc8 */ 32 #define SHT30_HUM_CRC8_BASE 0xFF 33 #define SHT30_HUM_CRC8_MASK 0x80 34 #define SHT30_HUM_CRC8_POLYNOMIAL 0x31 35 #define SHT30_HUM_CRC8_LEN 2 36 37 int32_t DetectHumiditySht30Chip(struct SensorCfgData *data); 38 39 struct Sht30DrvData { 40 struct IDeviceIoService ioService; 41 struct HdfDeviceObject *device; 42 struct SensorCfgData *sensorCfg; 43 }; 44 45 #endif /* HUMIDITY_SHT30_H */ 46