LibDriver STS3X
Loading...
Searching...
No Matches
driver_sts3x_basic.c
Go to the documentation of this file.
1
36
37#include "driver_sts3x_basic.h"
38
39static sts3x_handle_t gs_handle;
40
50{
51 uint8_t res;
52
53 /* link functions */
61
62 /* set addr pin */
63 res = sts3x_set_addr_pin(&gs_handle, addr_pin);
64 if (res != 0)
65 {
66 sts3x_interface_debug_print("sts3x: set addr pin failed.\n");
67
68 return 1;
69 }
70
71 /* sts3x init */
72 res = sts3x_init(&gs_handle);
73 if (res != 0)
74 {
75 sts3x_interface_debug_print("sts3x: init failed.\n");
76
77 return 1;
78 }
79
80 /* set default repeatability */
82 if (res != 0)
83 {
84 sts3x_interface_debug_print("sts3x: set repeatability failed.\n");
85 (void)sts3x_deinit(&gs_handle);
86
87 return 1;
88 }
89
90 /* wait 10 ms */
92
93 /* set default heater */
95 if (res != 0)
96 {
97 sts3x_interface_debug_print("sts3x: set heater failed.\n");
98 (void)sts3x_deinit(&gs_handle);
99
100 return 1;
101 }
102
103 /* wait 10 ms */
105
106 /* start continuous read */
108 if (res != 0)
109 {
110 sts3x_interface_debug_print("sts3x: start continuous read failed.\n");
111 (void)sts3x_deinit(&gs_handle);
112
113 return 1;
114 }
115
116 return 0;
117}
118
127uint8_t sts3x_basic_read(float *temperature)
128{
129 uint16_t temperature_raw;
130
131 /* read data */
132 if (sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, temperature) != 0)
133 {
134 return 1;
135 }
136
137 return 0;
138}
139
148{
149 uint8_t res;
150
151 /* stop continuous read */
152 res = sts3x_stop_continuous_read(&gs_handle);
153 if (res != 0)
154 {
155 return 1;
156 }
157
158 /* close sts3x */
159 if (sts3x_deinit(&gs_handle) != 0)
160 {
161 return 1;
162 }
163
164 return 0;
165}
driver sts3x basic header file
uint8_t sts3x_set_addr_pin(sts3x_handle_t *handle, sts3x_address_t addr_pin)
set the iic address pin
sts3x_address_t
sts3x address enumeration definition
uint8_t sts3x_set_repeatability(sts3x_handle_t *handle, sts3x_repeatability_t repeatability)
set the measurement repeatability
uint8_t sts3x_continuous_read(sts3x_handle_t *handle, uint16_t *temperature_raw, float *temperature_s)
read data continuously
struct sts3x_handle_s sts3x_handle_t
sts3x handle structure definition
uint8_t sts3x_start_continuous_read(sts3x_handle_t *handle, sts3x_rate_t rate)
start reading
uint8_t sts3x_init(sts3x_handle_t *handle)
initialize the chip
uint8_t sts3x_set_heater(sts3x_handle_t *handle, sts3x_bool_t enable)
enable or disable the chip heater
uint8_t sts3x_stop_continuous_read(sts3x_handle_t *handle)
stop reading
uint8_t sts3x_deinit(sts3x_handle_t *handle)
close the chip
#define STS3X_BASIC_DEFAULT_HEATER
#define STS3X_BASIC_DEFAULT_RATE
sts3x basic example default definition
#define STS3X_BASIC_DEFAULT_REPEATABILITY
uint8_t sts3x_basic_deinit(void)
basic example deinit
uint8_t sts3x_basic_init(sts3x_address_t addr_pin)
basic example init
uint8_t sts3x_basic_read(float *temperature)
basic example read
void sts3x_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t sts3x_interface_iic_write_address16(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
interface iic bus write with 16 bits register address
void sts3x_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t sts3x_interface_iic_deinit(void)
interface iic bus deinit
uint8_t sts3x_interface_iic_init(void)
interface iic bus init
uint8_t sts3x_interface_iic_read_address16(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
interface iic bus read with 16 bits register address