35 lines
1.3 KiB
C
35 lines
1.3 KiB
C
/*
|
||
* SHT40 温湿度传感器驱动
|
||
* 功能:通过I2C1读取SHT40传感器的温湿度数据
|
||
* 依赖:STM32 HAL库
|
||
* 跨平台:仅适用于STM32F4系列,使用HAL库的I2C接口
|
||
*/
|
||
|
||
#ifndef __SHT40_H__
|
||
#define __SHT40_H__
|
||
|
||
#include <stdint.h>
|
||
#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 |