LibDriver SHT4X
Loading...
Searching...
No Matches
driver_sht4x.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_SHT4X_H
38#define DRIVER_SHT4X_H
39
40#include <stdio.h>
41#include <stdint.h>
42#include <string.h>
43
44#ifdef __cplusplus
45extern "C"{
46#endif
47
53
58
62typedef enum
63{
64 SHT4X_ADDRESS_0 = (0x44 << 1),
65 SHT4X_ADDRESS_1 = (0x45 << 1),
66 SHT4X_ADDRESS_2 = (0x46 << 1),
68
84
88typedef struct sht4x_handle_s
89{
90 uint8_t (*iic_init)(void);
91 uint8_t (*iic_deinit)(void);
92 uint8_t (*iic_write_cmd)(uint8_t addr, uint8_t *buf, uint16_t len);
93 uint8_t (*iic_read_cmd)(uint8_t addr, uint8_t *buf, uint16_t len);
94 void (*delay_ms)(uint32_t ms);
95 void (*debug_print)(const char *const fmt, ...);
96 uint8_t iic_addr;
97 uint8_t inited;
99
115
119
126
133#define DRIVER_SHT4X_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
134
141#define DRIVER_SHT4X_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
142
149#define DRIVER_SHT4X_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
150
157#define DRIVER_SHT4X_LINK_IIC_READ_COMMAND(HANDLE, FUC) (HANDLE)->iic_read_cmd = FUC
158
165#define DRIVER_SHT4X_LINK_IIC_WRITE_COMMAND(HANDLE, FUC) (HANDLE)->iic_write_cmd = FUC
166
173#define DRIVER_SHT4X_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
174
181#define DRIVER_SHT4X_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
182
186
193
202uint8_t sht4x_info(sht4x_info_t *info);
203
214uint8_t sht4x_set_addr(sht4x_handle_t *handle, sht4x_address_t addr);
215
226uint8_t sht4x_get_addr(sht4x_handle_t *handle, sht4x_address_t *addr);
227
239uint8_t sht4x_init(sht4x_handle_t *handle);
240
252uint8_t sht4x_deinit(sht4x_handle_t *handle);
253
270uint8_t sht4x_read(sht4x_handle_t *handle, sht4x_mode_t mode,
271 uint16_t *temperature_raw, float *temperature_s,
272 uint16_t *humidity_raw, float *humidity_s);
273
284uint8_t sht4x_soft_reset(sht4x_handle_t *handle);
285
298uint8_t sht4x_get_serial_number(sht4x_handle_t *handle, uint8_t num[4]);
299
303
310
323uint8_t sht4x_write_read(sht4x_handle_t *handle, uint8_t cmd, uint16_t delay_ms, uint8_t *data, uint16_t len);
324
328
332
333#ifdef __cplusplus
334}
335#endif
336
337#endif
uint8_t sht4x_read(sht4x_handle_t *handle, sht4x_mode_t mode, uint16_t *temperature_raw, float *temperature_s, uint16_t *humidity_raw, float *humidity_s)
read temperature and humidity
struct sht4x_handle_s sht4x_handle_t
sht4x handle structure definition
uint8_t sht4x_get_serial_number(sht4x_handle_t *handle, uint8_t num[4])
get serial number
sht4x_mode_t
sht4x mode enumeration definition
struct sht4x_info_s sht4x_info_t
sht4x information structure definition
sht4x_address_t
sht4x address enumeration definition
uint8_t sht4x_set_addr(sht4x_handle_t *handle, sht4x_address_t addr)
set the iic address
uint8_t sht4x_get_addr(sht4x_handle_t *handle, sht4x_address_t *addr)
get the iic address
uint8_t sht4x_init(sht4x_handle_t *handle)
initialize the chip
uint8_t sht4x_soft_reset(sht4x_handle_t *handle)
soft reset the chip
uint8_t sht4x_info(sht4x_info_t *info)
get chip's information
uint8_t sht4x_deinit(sht4x_handle_t *handle)
close the chip
@ SHT4X_MODE_HIGH_PRECISION_WITH_NO_HEATER
@ SHT4X_MODE_HIGH_PRECISION_WITH_HEATER_110MW_1S
@ SHT4X_MODE_MEDIUM_PRECISION_WITH_NO_HEATER
@ SHT4X_MODE_HIGH_PRECISION_WITH_HEATER_20MW_0P1S
@ SHT4X_MODE_HIGH_PRECISION_WITH_HEATER_200MW_1S
@ SHT4X_MODE_HIGH_PRECISION_WITH_HEATER_200MW_0P1S
@ SHT4X_MODE_LOWEST_PRECISION_WITH_NO_HEATER
@ SHT4X_MODE_HIGH_PRECISION_WITH_HEATER_110MW_0P1S
@ SHT4X_MODE_HIGH_PRECISION_WITH_HEATER_20MW_1S
@ SHT4X_ADDRESS_2
@ SHT4X_ADDRESS_1
@ SHT4X_ADDRESS_0
uint8_t sht4x_write_read(sht4x_handle_t *handle, uint8_t cmd, uint16_t delay_ms, uint8_t *data, uint16_t len)
write and read bytes
sht4x handle structure definition
void(* delay_ms)(uint32_t ms)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(void)
uint8_t(* iic_read_cmd)(uint8_t addr, uint8_t *buf, uint16_t len)
uint8_t(* iic_deinit)(void)
uint8_t(* iic_write_cmd)(uint8_t addr, uint8_t *buf, uint16_t len)
sht4x information structure definition
float temperature_max
float supply_voltage_max_v
uint32_t driver_version
float temperature_min
float max_current_ma
char manufacturer_name[32]
float supply_voltage_min_v
char interface[8]
char chip_name[32]