LibDriver STS21
Loading...
Searching...
No Matches
driver_sts21_read_test.c
Go to the documentation of this file.
1
36
38
39static sts21_handle_t gs_handle;
40
49uint8_t sts21_read_test(uint32_t times)
50{
51 uint8_t res;
52 uint32_t i;
53 sts21_info_t info;
54
55 /* link functions */
67
68 /* sts21 info */
69 res = sts21_info(&info);
70 if (res != 0)
71 {
72 sts21_interface_debug_print("sts21: get info failed.\n");
73
74 return 1;
75 }
76 else
77 {
78 /* print chip information */
79 sts21_interface_debug_print("sts21: chip is %s.\n", info.chip_name);
80 sts21_interface_debug_print("sts21: manufacturer is %s.\n", info.manufacturer_name);
81 sts21_interface_debug_print("sts21: interface is %s.\n", info.interface);
82 sts21_interface_debug_print("sts21: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
83 sts21_interface_debug_print("sts21: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
84 sts21_interface_debug_print("sts21: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
85 sts21_interface_debug_print("sts21: max current is %0.2fmA.\n", info.max_current_ma);
86 sts21_interface_debug_print("sts21: max temperature is %0.1fC.\n", info.temperature_max);
87 sts21_interface_debug_print("sts21: min temperature is %0.1fC.\n", info.temperature_min);
88 }
89
90 /* start read test */
91 sts21_interface_debug_print("sts21: start read test.\n");
92
93 /* sts21 init */
94 res = sts21_init(&gs_handle);
95 if (res != 0)
96 {
97 sts21_interface_debug_print("sts21: init failed.\n");
98
99 return 1;
100 }
101
102 /* disable heater */
103 res = sts21_set_heater(&gs_handle, STS21_BOOL_FALSE);
104 if (res != 0)
105 {
106 sts21_interface_debug_print("sts21: set heater failed.\n");
107 (void)sts21_deinit(&gs_handle);
108
109 return 1;
110 }
111
112 /* disable otp reload */
114 if (res != 0)
115 {
116 sts21_interface_debug_print("sts21: set disable otp reload failed.\n");
117 (void)sts21_deinit(&gs_handle);
118
119 return 1;
120 }
121
122 /* set hold master mode */
123 res = sts21_set_mode(&gs_handle, STS21_MODE_HOLD_MASTER);
124 if (res != 0)
125 {
126 sts21_interface_debug_print("sts21: set mode failed.\n");
127 (void)sts21_deinit(&gs_handle);
128
129 return 1;
130 }
131
132 /* output */
133 sts21_interface_debug_print("sts21: set hold master mode.\n");
134
135 /* set resolution t 14bit */
137 if (res != 0)
138 {
139 sts21_interface_debug_print("sts21: set resolution failed.\n");
140 (void)sts21_deinit(&gs_handle);
141
142 return 1;
143 }
144
145 /* output */
146 sts21_interface_debug_print("sts21: set resolution t 14bit.\n");
147
148 for (i = 0; i < times; i++)
149 {
150 uint16_t temperature_raw;
151 float temperature_s;
152
153 res = sts21_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
154 if (res != 0)
155 {
156 sts21_interface_debug_print("sts21: read failed.\n");
157 (void)sts21_deinit(&gs_handle);
158
159 return 1;
160 }
161 sts21_interface_debug_print("sts21: temperature is %0.2fC.\n", temperature_s);
162
163 /* wait 1000 ms */
165 }
166
167 /* set resolution t 12bit */
169 if (res != 0)
170 {
171 sts21_interface_debug_print("sts21: set resolution failed.\n");
172 (void)sts21_deinit(&gs_handle);
173
174 return 1;
175 }
176
177 /* output */
178 sts21_interface_debug_print("sts21: set resolution t 12bit.\n");
179
180 for (i = 0; i < times; i++)
181 {
182 uint16_t temperature_raw;
183 float temperature_s;
184
185 res = sts21_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
186 if (res != 0)
187 {
188 sts21_interface_debug_print("sts21: read failed.\n");
189 (void)sts21_deinit(&gs_handle);
190
191 return 1;
192 }
193 sts21_interface_debug_print("sts21: temperature is %0.2fC.\n", temperature_s);
194
195 /* wait 1000 ms */
197 }
198
199 /* set resolution t 13bit */
201 if (res != 0)
202 {
203 sts21_interface_debug_print("sts21: set resolution failed.\n");
204 (void)sts21_deinit(&gs_handle);
205
206 return 1;
207 }
208
209 /* output */
210 sts21_interface_debug_print("sts21: set resolution t 13bit.\n");
211
212 for (i = 0; i < times; i++)
213 {
214 uint16_t temperature_raw;
215 float temperature_s;
216
217 res = sts21_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
218 if (res != 0)
219 {
220 sts21_interface_debug_print("sts21: read failed.\n");
221 (void)sts21_deinit(&gs_handle);
222
223 return 1;
224 }
225 sts21_interface_debug_print("sts21: temperature is %0.2fC.\n", temperature_s);
226
227 /* wait 1000 ms */
229 }
230
231 /* set resolution t 11bit */
233 if (res != 0)
234 {
235 sts21_interface_debug_print("sts21: set resolution failed.\n");
236 (void)sts21_deinit(&gs_handle);
237
238 return 1;
239 }
240
241 /* output */
242 sts21_interface_debug_print("sts21: set resolution t 11bit.\n");
243
244 for (i = 0; i < times; i++)
245 {
246 uint16_t temperature_raw;
247 float temperature_s;
248
249 res = sts21_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
250 if (res != 0)
251 {
252 sts21_interface_debug_print("sts21: read failed.\n");
253 (void)sts21_deinit(&gs_handle);
254
255 return 1;
256 }
257 sts21_interface_debug_print("sts21: temperature is %0.2fC.\n", temperature_s);
258
259 /* wait 1000 ms */
261 }
262
263 /* set no hold master mode */
264 res = sts21_set_mode(&gs_handle, STS21_MODE_NO_HOLD_MASTER);
265 if (res != 0)
266 {
267 sts21_interface_debug_print("sts21: set mode failed.\n");
268 (void)sts21_deinit(&gs_handle);
269
270 return 1;
271 }
272
273 /* output */
274 sts21_interface_debug_print("sts21: set no hold master mode.\n");
275
276 /* set resolution t 14bit */
278 if (res != 0)
279 {
280 sts21_interface_debug_print("sts21: set resolution failed.\n");
281 (void)sts21_deinit(&gs_handle);
282
283 return 1;
284 }
285
286 /* output */
287 sts21_interface_debug_print("sts21: set resolution t 14bit.\n");
288
289 for (i = 0; i < times; i++)
290 {
291 uint16_t temperature_raw;
292 float temperature_s;
293
294 res = sts21_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
295 if (res != 0)
296 {
297 sts21_interface_debug_print("sts21: read failed.\n");
298 (void)sts21_deinit(&gs_handle);
299
300 return 1;
301 }
302 sts21_interface_debug_print("sts21: temperature is %0.2fC.\n", temperature_s);
303
304 /* wait 1000 ms */
306 }
307
308 /* set resolution t 12bit */
310 if (res != 0)
311 {
312 sts21_interface_debug_print("sts21: set resolution failed.\n");
313 (void)sts21_deinit(&gs_handle);
314
315 return 1;
316 }
317
318 /* output */
319 sts21_interface_debug_print("sts21: set resolution t 12bit.\n");
320
321 for (i = 0; i < times; i++)
322 {
323 uint16_t temperature_raw;
324 float temperature_s;
325
326 res = sts21_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
327 if (res != 0)
328 {
329 sts21_interface_debug_print("sts21: read failed.\n");
330 (void)sts21_deinit(&gs_handle);
331
332 return 1;
333 }
334 sts21_interface_debug_print("sts21: temperature is %0.2fC.\n", temperature_s);
335
336 /* wait 1000 ms */
338 }
339
340 /* set resolution t 13bit */
342 if (res != 0)
343 {
344 sts21_interface_debug_print("sts21: set resolution failed.\n");
345 (void)sts21_deinit(&gs_handle);
346
347 return 1;
348 }
349
350 /* output */
351 sts21_interface_debug_print("sts21: set resolution t 13bit.\n");
352
353 for (i = 0; i < times; i++)
354 {
355 uint16_t temperature_raw;
356 float temperature_s;
357
358 res = sts21_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
359 if (res != 0)
360 {
361 sts21_interface_debug_print("sts21: read failed.\n");
362 (void)sts21_deinit(&gs_handle);
363
364 return 1;
365 }
366 sts21_interface_debug_print("sts21: temperature is %0.2fC.\n", temperature_s);
367
368 /* wait 1000 ms */
370 }
371
372 /* set resolution t 11bit */
374 if (res != 0)
375 {
376 sts21_interface_debug_print("sts21: set resolution failed.\n");
377 (void)sts21_deinit(&gs_handle);
378
379 return 1;
380 }
381
382 /* output */
383 sts21_interface_debug_print("sts21: set resolution t 11bit.\n");
384
385 for (i = 0; i < times; i++)
386 {
387 uint16_t temperature_raw;
388 float temperature_s;
389
390 res = sts21_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
391 if (res != 0)
392 {
393 sts21_interface_debug_print("sts21: read failed.\n");
394 (void)sts21_deinit(&gs_handle);
395
396 return 1;
397 }
398 sts21_interface_debug_print("sts21: temperature is %0.2fC.\n", temperature_s);
399
400 /* wait 1000 ms */
402 }
403
404 /* finish read test */
405 sts21_interface_debug_print("sts21: finish read test.\n");
406 (void)sts21_deinit(&gs_handle);
407
408 return 0;
409}
driver sts21 read test header file
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_set_resolution(sts21_handle_t *handle, sts21_resolution_t resolution)
set resolution
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
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_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
@ STS21_BOOL_FALSE
@ STS21_BOOL_TRUE
void sts21_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t sts21_interface_iic_init(void)
interface iic bus init
uint8_t sts21_interface_iic_read_command(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus read command
uint8_t sts21_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t sts21_interface_iic_read_with_wait(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read with wait
uint8_t sts21_interface_iic_deinit(void)
interface iic bus deinit
uint8_t sts21_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
void sts21_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t sts21_interface_iic_write_command(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus write command
uint8_t sts21_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
uint8_t sts21_read_test(uint32_t times)
read test
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]