/* * SHT40 温湿度传感器驱动 * 功能:通过I2C1读取SHT40传感器的温湿度数据 * 依赖:STM32 HAL库 * 跨平台:仅适用于STM32F4系列,使用HAL库的I2C接口 */ #ifndef __SHT40_H__ #define __SHT40_H__ #include #include "stm32f4xx_hal.h" /* SHT40 I2C地址 */ #define SHT40_I2C_ADDR 0x44 /* SHT40命令 */ #define SHT40_CMD_MEASURE_HIGH_PRECISION 0xFD // 高精度测量(高重复性) #define SHT40_CMD_MEASURE_MED_PRECISION 0xF6 // 中精度测量(中重复性) #define SHT40_CMD_MEASURE_LOW_PRECISION 0xE0 // 低精度测量(低重复性) #define SHT40_CMD_RESET 0x89 // 软复位 #define SHT40_CMD_READ_SERIAL 0x00 // 读取序列号 #define SHT40_CMD_HEATER_HIGH 0x94 // 加热器开启(高功率,200mW) #define SHT40_CMD_HEATER_MED 0x91 // 加热器开启(中功率,110mW) #define SHT40_CMD_HEATER_LOW 0x8D // 加热器开启(低功率,20mW) /* 函数声明 */ int sht40_init(void); int sht40_read_temperature_humidity(float *temperature, float *humidity); int sht40_read_temperature_humidity_with_precision(float *temperature, float *humidity, uint8_t precision); int sht40_reset(void); int sht40_read_serial(uint32_t *serial); int sht40_heater_enable(uint8_t power_level); #endif