LibDriver HTU21D
Loading...
Searching...
No Matches
driver_htu21d.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_HTU21D_H
38#define DRIVER_HTU21D_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{
67
76
85
96
100typedef struct htu21d_handle_s
101{
102 uint8_t (*iic_init)(void);
103 uint8_t (*iic_deinit)(void);
104 uint8_t (*iic_write_cmd)(uint8_t addr, uint8_t *buf, uint16_t len);
105 uint8_t (*iic_read_cmd)(uint8_t addr, uint8_t *buf, uint16_t len);
106 uint8_t (*iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
107 uint8_t (*iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
108 uint8_t (*iic_read_with_scl)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
109 void (*delay_ms)(uint32_t ms);
110 void (*debug_print)(const char *const fmt, ...);
111 uint8_t mode;
112 uint8_t resolution;
113 uint8_t inited;
115
131
135
142
149#define DRIVER_HTU21D_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
150
157#define DRIVER_HTU21D_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
158
165#define DRIVER_HTU21D_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
166
173#define DRIVER_HTU21D_LINK_IIC_WRITE_CMD(HANDLE, FUC) (HANDLE)->iic_write_cmd = FUC
174
181#define DRIVER_HTU21D_LINK_IIC_READ_CMD(HANDLE, FUC) (HANDLE)->iic_read_cmd = FUC
182
189#define DRIVER_HTU21D_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
190
197#define DRIVER_HTU21D_LINK_IIC_READ(HANDLE, FUC) (HANDLE)->iic_read = FUC
198
205#define DRIVER_HTU21D_LINK_IIC_READ_WITH_SCL(HANDLE, FUC) (HANDLE)->iic_read_with_scl = FUC
206
213#define DRIVER_HTU21D_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
214
221#define DRIVER_HTU21D_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
222
226
233
242uint8_t htu21d_info(htu21d_info_t *info);
243
256uint8_t htu21d_init(htu21d_handle_t *handle);
257
269uint8_t htu21d_deinit(htu21d_handle_t *handle);
270
282uint8_t htu21d_set_mode(htu21d_handle_t *handle, htu21d_mode_t mode);
283
295uint8_t htu21d_get_mode(htu21d_handle_t *handle, htu21d_mode_t *mode);
296
307uint8_t htu21d_soft_reset(htu21d_handle_t *handle);
308
326 uint16_t *temperature_raw, float *temperature_s,
327 uint16_t *humidity_raw, float *humidity_s
328 );
329
344uint8_t htu21d_read_temperature(htu21d_handle_t *handle, uint16_t *temperature_raw, float *temperature_s);
345
360uint8_t htu21d_read_humidity(htu21d_handle_t *handle, uint16_t *humidity_raw, float *humidity_s);
361
374
386uint8_t htu21d_get_resolution(htu21d_handle_t *handle, htu21d_resolution_t *resolution);
387
400
412uint8_t htu21d_set_heater(htu21d_handle_t *handle, htu21d_bool_t enable);
413
425uint8_t htu21d_get_heater(htu21d_handle_t *handle, htu21d_bool_t *enable);
426
439
452
465uint8_t htu21d_get_serial_number(htu21d_handle_t *handle, uint64_t *number);
466
470
477
490uint8_t htu21d_set_reg(htu21d_handle_t *handle, uint8_t *buf, uint16_t len);
491
504uint8_t htu21d_get_reg(htu21d_handle_t *handle, uint8_t *buf, uint16_t len);
505
509
513
514#ifdef __cplusplus
515}
516#endif
517
518#endif
uint8_t htu21d_get_disable_otp_reload(htu21d_handle_t *handle, htu21d_bool_t *enable)
get the disable otp reload status
uint8_t htu21d_set_disable_otp_reload(htu21d_handle_t *handle, htu21d_bool_t enable)
enable or disable otp reload
uint8_t htu21d_read_temperature_humidity(htu21d_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 htu21d_get_heater(htu21d_handle_t *handle, htu21d_bool_t *enable)
get the heater status
uint8_t htu21d_soft_reset(htu21d_handle_t *handle)
soft reset
uint8_t htu21d_get_resolution(htu21d_handle_t *handle, htu21d_resolution_t *resolution)
get the resolution
uint8_t htu21d_info(htu21d_info_t *info)
get chip's information
uint8_t htu21d_set_mode(htu21d_handle_t *handle, htu21d_mode_t mode)
set the chip mode
uint8_t htu21d_init(htu21d_handle_t *handle)
initialize the chip
htu21d_resolution_t
htu21d resolution enumeration definition
htu21d_mode_t
htu21d mode enumeration definition
uint8_t htu21d_set_resolution(htu21d_handle_t *handle, htu21d_resolution_t resolution)
set the resolution
uint8_t htu21d_set_heater(htu21d_handle_t *handle, htu21d_bool_t enable)
enable or disable the heater
struct htu21d_handle_s htu21d_handle_t
htu21d handle structure definition
uint8_t htu21d_read_temperature(htu21d_handle_t *handle, uint16_t *temperature_raw, float *temperature_s)
read the temperature data
struct htu21d_info_s htu21d_info_t
htu21d information structure definition
uint8_t htu21d_get_mode(htu21d_handle_t *handle, htu21d_mode_t *mode)
get the chip mode
uint8_t htu21d_get_serial_number(htu21d_handle_t *handle, uint64_t *number)
get the serial number
uint8_t htu21d_get_battery_status(htu21d_handle_t *handle, htu21d_status_t *status)
get the battery status
uint8_t htu21d_read_humidity(htu21d_handle_t *handle, uint16_t *humidity_raw, float *humidity_s)
read the humidity data
htu21d_status_t
htu21d status enumeration definition
htu21d_bool_t
htu21d bool enumeration definition
uint8_t htu21d_deinit(htu21d_handle_t *handle)
close the chip
@ HTU21D_RESOLUTION_TEMP_13_BITS_RH_10_BITS
@ HTU21D_RESOLUTION_TEMP_14_BITS_RH_12_BITS
@ HTU21D_RESOLUTION_TEMP_12_BITS_RH_8_BITS
@ HTU21D_RESOLUTION_TEMP_11_BITS_RH_11_BITS
@ HTU21D_MODE_HOLD_MASTER
@ HTU21D_MODE_NO_HOLD_MASTER
@ HTU21D_STATUS_LESS_2P25
@ HTU21D_STATUS_OVER_2P25
@ HTU21D_BOOL_FALSE
@ HTU21D_BOOL_TRUE
uint8_t htu21d_get_reg(htu21d_handle_t *handle, uint8_t *buf, uint16_t len)
get the chip register
uint8_t htu21d_set_reg(htu21d_handle_t *handle, uint8_t *buf, uint16_t len)
set the chip register
htu21d handle structure definition
void(* delay_ms)(uint32_t ms)
uint8_t(* iic_read_with_scl)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
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_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)
uint8_t(* iic_write_cmd)(uint8_t addr, uint8_t *buf, uint16_t len)
htu21d 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]