12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /**
- * @Author: 李建
- * @Date: 2025/4/22 13:48
- * Description: 温湿度传感器
- * Copyright: Copyright (©) 2025 永续绿建. All rights reserved.
- */
- #ifndef WIRE_CONTROLLER_SHT30_H
- #define WIRE_CONTROLLER_SHT30_H
- #define I2C_MASTER_SCL_IO GPIO_NUM_38 /*!< GPIO number used for I2C master clock */
- #define I2C_MASTER_SDA_IO GPIO_NUM_39 /*!< GPIO number used for I2C master data */
- #define I2C_MASTER_NUM 0 /*!< I2C master i2c port number, the number of i2c peripheral interfaces available will depend on the chip */
- #define I2C_MASTER_FREQ_HZ 400000 /*!< I2C master clock frequency */
- #define I2C_MASTER_TX_BUF_DISABLE 0 /*!< I2C master doesn't need buffer */
- #define I2C_MASTER_RX_BUF_DISABLE 0 /*!< I2C master doesn't need buffer */
- #define SHT3X_TICKS_TO_WAIT (100 / portTICK_PERIOD_MS) // I2C读写的超时等待时间
- #define SHT3X_I2C_BUS I2C_NUM_1 // SHT30所在的I2C总线
- #define SHT3X_SLAVE_ADDRESS 0x44 // SHT30在I2C总线上的从机器件地址
- // SHT30命令列表
- typedef enum
- {
- /* 软件复位命令 */
- SOFT_RESET_CMD = 0x30A2,
- /*
- 单次测量模式
- 命名格式:Repeatability_CS_CMD
- CS:Clock stretching
- */
- HIGH_ENABLED_CMD = 0x2C06,
- MEDIUM_ENABLED_CMD = 0x2C0D,
- LOW_ENABLED_CMD = 0x2C10,
- HIGH_DISABLED_CMD = 0x2400,
- MEDIUM_DISABLED_CMD = 0x240B,
- LOW_DISABLED_CMD = 0x2416,
- /*
- 周期测量模式
- 命名格式:Repeatability_MPS_CMD
- MPS:measurement per second
- */
- HIGH_0_5_CMD = 0x2032,
- MEDIUM_0_5_CMD = 0x2024,
- LOW_0_5_CMD = 0x202F,
- HIGH_1_CMD = 0x2130,
- MEDIUM_1_CMD = 0x2126,
- LOW_1_CMD = 0x212D,
- HIGH_2_CMD = 0x2236,
- MEDIUM_2_CMD = 0x2220,
- LOW_2_CMD = 0x222B,
- HIGH_4_CMD = 0x2334,
- MEDIUM_4_CMD = 0x2322,
- LOW_4_CMD = 0x2329,
- HIGH_10_CMD = 0x2737,
- MEDIUM_10_CMD = 0x2721,
- LOW_10_CMD = 0x272A,
- /* 周期测量模式读取数据命令 */
- READOUT_FOR_PERIODIC_MODE = 0xE000,
- } SHT30_CMD;
- /**
- * 包含数据的结构体
- */
- typedef struct {
- float temperature;
- float humidity;
- }sht30_data_t;
- extern sht30_data_t sht30Data;
- void sht30_init();
- #endif //WIRE_CONTROLLER_SHT30_H
|