LibDriver HTU31D
Loading...
Searching...
No Matches
driver_htu31d.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_HTU31D_H
38#define DRIVER_HTU31D_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 HTU31D_ADDR_PIN_LOW = (0x40 << 1),
65 HTU31D_ADDR_PIN_HIGH = (0x41 << 1),
67
78
89
104
108typedef struct htu31d_handle_s
109{
110 uint8_t (*iic_init)(void);
111 uint8_t (*iic_deinit)(void);
112 uint8_t (*iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
113 uint8_t (*iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
114 void (*delay_ms)(uint32_t ms);
115 void (*debug_print)(const char *const fmt, ...);
116 uint8_t iic_addr;
117 uint8_t inited;
118 uint8_t humidity_osr;
121
137
141
148
155#define DRIVER_HTU31D_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
156
163#define DRIVER_HTU31D_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
164
171#define DRIVER_HTU31D_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
172
179#define DRIVER_HTU31D_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
180
187#define DRIVER_HTU31D_LINK_IIC_READ(HANDLE, FUC) (HANDLE)->iic_read = FUC
188
195#define DRIVER_HTU31D_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
196
203#define DRIVER_HTU31D_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
204
208
215
224uint8_t htu31d_info(htu31d_info_t *info);
225
235uint8_t htu31d_set_addr_pin(htu31d_handle_t *handle, htu31d_addr_pin_t addr_pin);
236
246uint8_t htu31d_get_addr_pin(htu31d_handle_t *handle, htu31d_addr_pin_t *addr_pin);
247
259uint8_t htu31d_init(htu31d_handle_t *handle);
260
272uint8_t htu31d_deinit(htu31d_handle_t *handle);
273
285
297
309
321
339 uint16_t *temperature_raw, float *temperature_s,
340 uint16_t *humidity_raw, float *humidity_s
341 );
342
357uint8_t htu31d_read_humidity(htu31d_handle_t *handle, uint16_t *humidity_raw, float *humidity_s);
358
369uint8_t htu31d_soft_reset(htu31d_handle_t *handle);
370
382
394
407uint8_t htu31d_get_serial_number(htu31d_handle_t *handle, uint8_t number[3]);
408
421uint8_t htu31d_get_diagnostic(htu31d_handle_t *handle, uint8_t *diagnostic);
422
426
433
447uint8_t htu31d_set_reg(htu31d_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len);
448
462uint8_t htu31d_get_reg(htu31d_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len);
463
467
471
472#ifdef __cplusplus
473}
474#endif
475
476#endif
uint8_t htu31d_soft_reset(htu31d_handle_t *handle)
soft reset
uint8_t htu31d_set_addr_pin(htu31d_handle_t *handle, htu31d_addr_pin_t addr_pin)
set the address pin
uint8_t htu31d_get_serial_number(htu31d_handle_t *handle, uint8_t number[3])
get the serial number
struct htu31d_info_s htu31d_info_t
htu31d information structure definition
uint8_t htu31d_deinit(htu31d_handle_t *handle)
close the chip
uint8_t htu31d_get_humidity_osr(htu31d_handle_t *handle, htu31d_humidity_osr_t *osr)
get humidity osr
htu31d_humidity_osr_t
htu31d humidity osr enumeration definition
uint8_t htu31d_read_humidity(htu31d_handle_t *handle, uint16_t *humidity_raw, float *humidity_s)
read the humidity data
htu31d_temperature_osr_t
htu31d temperature osr enumeration definition
htu31d_addr_pin_t
htu31d addr pin enumeration definition
uint8_t htu31d_init(htu31d_handle_t *handle)
initialize the chip
uint8_t htu31d_set_heater_on(htu31d_handle_t *handle)
enable heater
uint8_t htu31d_set_heater_off(htu31d_handle_t *handle)
disable heater
uint8_t htu31d_read_temperature_humidity(htu31d_handle_t *handle, uint16_t *temperature_raw, float *temperature_s, uint16_t *humidity_raw, float *humidity_s)
read the temperature and humidity data
uint8_t htu31d_info(htu31d_info_t *info)
get chip's information
uint8_t htu31d_get_temperature_osr(htu31d_handle_t *handle, htu31d_temperature_osr_t *osr)
get temperature osr
uint8_t htu31d_set_temperature_osr(htu31d_handle_t *handle, htu31d_temperature_osr_t osr)
set temperature osr
uint8_t htu31d_get_addr_pin(htu31d_handle_t *handle, htu31d_addr_pin_t *addr_pin)
get the address pin
uint8_t htu31d_get_diagnostic(htu31d_handle_t *handle, uint8_t *diagnostic)
get the diagnostic
struct htu31d_handle_s htu31d_handle_t
htu31d handle structure definition
uint8_t htu31d_set_humidity_osr(htu31d_handle_t *handle, htu31d_humidity_osr_t osr)
set humidity osr
htu31d_diagnostic_t
htu31d diagnostic enumeration definition
@ HTU31D_HUMIDITY_OSR_LOW
@ HTU31D_HUMIDITY_OSR_HIGH
@ HTU31D_HUMIDITY_OSR_MIDDLE
@ HTU31D_HUMIDITY_OSR_VERY_HIGH
@ HTU31D_TEMPERATURE_OSR_MIDDLE
@ HTU31D_TEMPERATURE_OSR_VERY_HIGH
@ HTU31D_TEMPERATURE_OSR_LOW
@ HTU31D_TEMPERATURE_OSR_HIGH
@ HTU31D_ADDR_PIN_LOW
@ HTU31D_ADDR_PIN_HIGH
@ HTU31D_DIAGNOSTIC_TEMPERATURE_UNDER_OVERRUN
@ HTU31D_DIAGNOSTIC_TEMPERATURE_HIGH_ERROR
@ HTU31D_DIAGNOSTIC_HEATER_ON
@ HTU31D_DIAGNOSTIC_TEMPERATURE_LOW_ERROR
@ HTU31D_DIAGNOSTIC_HUMIDITY_UNDER_OVERRUN
@ HTU31D_DIAGNOSTIC_HUMIDITY_LOW_ERROR
@ HTU31D_DIAGNOSTIC_HUMIDITY_HIGH_ERROR
@ HTU31D_DIAGNOSTIC_NVM_ERROR
uint8_t htu31d_set_reg(htu31d_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
set the chip register
uint8_t htu31d_get_reg(htu31d_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
get the chip register
htu31d handle structure definition
void(* delay_ms)(uint32_t ms)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(void)
uint8_t temperature_osr
uint8_t(* iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_deinit)(void)
htu31d information structure definition
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]