LibDriver STS21
Loading...
Searching...
No Matches
driver_sts21.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_STS21_H
38#define DRIVER_STS21_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 sts21_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_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
106 uint8_t (*iic_read_cmd)(uint8_t addr, 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_wait)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
109 uint8_t (*iic_read_address16)(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len);
110 void (*delay_ms)(uint32_t ms);
111 void (*debug_print)(const char *const fmt, ...);
112 uint8_t resolution;
113 uint8_t mode;
114 uint8_t inited;
116
132
136
143
150#define DRIVER_STS21_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
151
158#define DRIVER_STS21_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
159
166#define DRIVER_STS21_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
167
174#define DRIVER_STS21_LINK_IIC_WRITE_COMMAND(HANDLE, FUC) (HANDLE)->iic_write_cmd = FUC
175
182#define DRIVER_STS21_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
183
190#define DRIVER_STS21_LINK_IIC_READ_COMMAND(HANDLE, FUC) (HANDLE)->iic_read_cmd = FUC
191
198#define DRIVER_STS21_LINK_IIC_READ(HANDLE, FUC) (HANDLE)->iic_read = FUC
199
206#define DRIVER_STS21_LINK_IIC_READ_WITH_WAIT(HANDLE, FUC) (HANDLE)->iic_read_with_wait = FUC
207
214#define DRIVER_STS21_LINK_IIC_READ_ADDRESS16(HANDLE, FUC) (HANDLE)->iic_read_address16 = FUC
215
222#define DRIVER_STS21_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
223
230#define DRIVER_STS21_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
231
235
242
251uint8_t sts21_info(sts21_info_t *info);
252
263uint8_t sts21_init(sts21_handle_t *handle);
264
275uint8_t sts21_deinit(sts21_handle_t *handle);
276
290uint8_t sts21_read(sts21_handle_t *handle, uint16_t *temperature_raw, float *temperature_s);
291
302uint8_t sts21_set_mode(sts21_handle_t *handle, sts21_mode_t mode);
303
314uint8_t sts21_get_mode(sts21_handle_t *handle, sts21_mode_t *mode);
315
326uint8_t sts21_soft_reset(sts21_handle_t *handle);
327
339uint8_t sts21_set_resolution(sts21_handle_t *handle, sts21_resolution_t resolution);
340
352uint8_t sts21_get_resolution(sts21_handle_t *handle, sts21_resolution_t *resolution);
353
365uint8_t sts21_set_heater(sts21_handle_t *handle, sts21_bool_t enable);
366
378uint8_t sts21_get_heater(sts21_handle_t *handle, sts21_bool_t *enable);
379
392
405
417uint8_t sts21_get_status(sts21_handle_t *handle, sts21_status_t *status);
418
431uint8_t sts21_get_serial_number(sts21_handle_t *handle, uint8_t sn[8]);
432
436
443
457uint8_t sts21_set_reg(sts21_handle_t *handle, uint8_t reg, uint8_t *data, uint16_t len);
458
472uint8_t sts21_get_reg(sts21_handle_t *handle, uint8_t reg, uint8_t *data, uint16_t len);
473
487uint8_t sts21_get_reg16(sts21_handle_t *handle, uint16_t reg, uint8_t *data, uint16_t len);
488
501uint8_t sts21_set_cmd(sts21_handle_t *handle, uint8_t *data, uint16_t len);
502
515uint8_t sts21_get_cmd(sts21_handle_t *handle, uint8_t *data, uint16_t len);
516
520
524
525#ifdef __cplusplus
526}
527#endif
528
529#endif
sts21_resolution_t
sts21 resolution enumeration definition
uint8_t sts21_soft_reset(sts21_handle_t *handle)
soft reset the chip
uint8_t sts21_info(sts21_info_t *info)
get chip's information
uint8_t sts21_set_heater(sts21_handle_t *handle, sts21_bool_t enable)
enable or disable heater
uint8_t sts21_get_status(sts21_handle_t *handle, sts21_status_t *status)
get status
uint8_t sts21_get_disable_otp_reload(sts21_handle_t *handle, sts21_bool_t *enable)
get disable otp reload status
sts21_mode_t
sts21 mode enumeration definition
uint8_t sts21_get_mode(sts21_handle_t *handle, sts21_mode_t *mode)
get chip mode
uint8_t sts21_set_resolution(sts21_handle_t *handle, sts21_resolution_t resolution)
set resolution
sts21_status_t
sts21 status enumeration definition
uint8_t sts21_get_serial_number(sts21_handle_t *handle, uint8_t sn[8])
get serial number
uint8_t sts21_get_heater(sts21_handle_t *handle, sts21_bool_t *enable)
get heater status
struct sts21_info_s sts21_info_t
sts21 information structure definition
uint8_t sts21_set_disable_otp_reload(sts21_handle_t *handle, sts21_bool_t enable)
enable or disable disable otp reload
struct sts21_handle_s sts21_handle_t
sts21 handle structure definition
sts21_bool_t
sts21 bool enumeration definition
uint8_t sts21_deinit(sts21_handle_t *handle)
close the chip
uint8_t sts21_set_mode(sts21_handle_t *handle, sts21_mode_t mode)
set chip mode
uint8_t sts21_get_resolution(sts21_handle_t *handle, sts21_resolution_t *resolution)
get resolution
uint8_t sts21_init(sts21_handle_t *handle)
initialize the chip
uint8_t sts21_read(sts21_handle_t *handle, uint16_t *temperature_raw, float *temperature_s)
read data
@ STS21_RESOLUTION_T_11BIT
@ STS21_RESOLUTION_T_14BIT
@ STS21_RESOLUTION_T_13BIT
@ STS21_RESOLUTION_T_12BIT
@ STS21_MODE_HOLD_MASTER
@ STS21_MODE_NO_HOLD_MASTER
@ SHT35_STATUS_VDD_LESS_2P25V
@ SHT35_STATUS_VDD_OVER_2P25V
@ STS21_BOOL_FALSE
@ STS21_BOOL_TRUE
uint8_t sts21_get_cmd(sts21_handle_t *handle, uint8_t *data, uint16_t len)
get command
uint8_t sts21_set_cmd(sts21_handle_t *handle, uint8_t *data, uint16_t len)
set command
uint8_t sts21_set_reg(sts21_handle_t *handle, uint8_t reg, uint8_t *data, uint16_t len)
set the chip register
uint8_t sts21_get_reg16(sts21_handle_t *handle, uint16_t reg, uint8_t *data, uint16_t len)
get the chip register16
uint8_t sts21_get_reg(sts21_handle_t *handle, uint8_t reg, uint8_t *data, uint16_t len)
get the chip register
sts21 handle structure definition
void(* delay_ms)(uint32_t ms)
uint8_t(* iic_read_address16)(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(void)
uint8_t(* iic_read_with_wait)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
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)
sts21 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]