LibDriver AHT30
Loading...
Searching...
No Matches
driver_aht30.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_AHT30_H
38#define DRIVER_AHT30_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
72
76typedef struct aht30_handle_s
77{
78 uint8_t (*iic_init)(void);
79 uint8_t (*iic_deinit)(void);
80 uint8_t (*iic_read_cmd)(uint8_t addr, uint8_t *buf, uint16_t len);
81 uint8_t (*iic_write_cmd)(uint8_t addr, uint8_t *buf, uint16_t len);
82 void (*delay_ms)(uint32_t ms);
83 void (*debug_print)(const char *const fmt, ...);
84 uint8_t inited;
86
102
106
113
120#define DRIVER_AHT30_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
121
128#define DRIVER_AHT30_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
129
136#define DRIVER_AHT30_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
137
144#define DRIVER_AHT30_LINK_IIC_READ_CMD(HANDLE, FUC) (HANDLE)->iic_read_cmd = FUC
145
152#define DRIVER_AHT30_LINK_IIC_WRITE_CMD(HANDLE, FUC) (HANDLE)->iic_write_cmd = FUC
153
160#define DRIVER_AHT30_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
161
168#define DRIVER_AHT30_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
169
173
180
189uint8_t aht30_info(aht30_info_t *info);
190
203uint8_t aht30_init(aht30_handle_t *handle);
204
215uint8_t aht30_deinit(aht30_handle_t *handle);
216
233uint8_t aht30_read_temperature_humidity(aht30_handle_t *handle, uint32_t *temperature_raw, float *temperature_s,
234 uint32_t *humidity_raw, uint8_t *humidity_s);
235
250uint8_t aht30_read_temperature(aht30_handle_t *handle, uint32_t *temperature_raw, float *temperature_s);
251
266uint8_t aht30_read_humidity(aht30_handle_t *handle, uint32_t *humidity_raw, uint8_t *humidity_s);
267
279uint8_t aht30_get_status(aht30_handle_t *handle, uint8_t *status);
280
284
291
304uint8_t aht30_set_reg(aht30_handle_t *handle, uint8_t *buf, uint16_t len);
305
318uint8_t aht30_get_reg(aht30_handle_t *handle, uint8_t *buf, uint16_t len);
319
323
327
328#ifdef __cplusplus
329}
330#endif
331
332#endif
uint8_t aht30_deinit(aht30_handle_t *handle)
close the chip
uint8_t aht30_read_humidity(aht30_handle_t *handle, uint32_t *humidity_raw, uint8_t *humidity_s)
read the humidity data
uint8_t aht30_read_temperature(aht30_handle_t *handle, uint32_t *temperature_raw, float *temperature_s)
read the temperature
uint8_t aht30_init(aht30_handle_t *handle)
initialize the chip
uint8_t aht30_read_temperature_humidity(aht30_handle_t *handle, uint32_t *temperature_raw, float *temperature_s, uint32_t *humidity_raw, uint8_t *humidity_s)
read the temperature and humidity data
aht30_status_t
aht30 status enumeration definition
struct aht30_handle_s aht30_handle_t
aht30 handle structure definition
uint8_t aht30_info(aht30_info_t *info)
get chip's information
uint8_t aht30_get_status(aht30_handle_t *handle, uint8_t *status)
get status
struct aht30_info_s aht30_info_t
aht30 information structure definition
@ AHT30_STATUS_BUSY
@ AHT30_STATUS_CMP_INT
@ AHT30_STATUS_CYC_MODE
@ AHT30_STATUS_CRC_FLAG
@ AHT30_STATUS_CMD_MODE
@ AHT30_STATUS_CALIBRATION_ENABLE
@ AHT30_STATUS_NOR_MODE
uint8_t aht30_get_reg(aht30_handle_t *handle, uint8_t *buf, uint16_t len)
get the chip register
uint8_t aht30_set_reg(aht30_handle_t *handle, uint8_t *buf, uint16_t len)
set the chip register
aht30 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)
aht30 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]