LibDriver STS3X
Loading...
Searching...
No Matches
driver_sts3x_read_test.c
Go to the documentation of this file.
1
36
38
39static sts3x_handle_t gs_handle;
40
50uint8_t sts3x_read_test(sts3x_address_t addr_pin, uint32_t times)
51{
52 uint8_t res;
53 uint32_t i;
54 sts3x_info_t info;
55
56 /* link functions */
64
65 /* sts3x info */
66 res = sts3x_info(&info);
67 if (res != 0)
68 {
69 sts3x_interface_debug_print("sts3x: get info failed.\n");
70
71 return 1;
72 }
73 else
74 {
75 /* print chip information */
76 sts3x_interface_debug_print("sts3x: chip is %s.\n", info.chip_name);
77 sts3x_interface_debug_print("sts3x: manufacturer is %s.\n", info.manufacturer_name);
78 sts3x_interface_debug_print("sts3x: interface is %s.\n", info.interface);
79 sts3x_interface_debug_print("sts3x: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
80 sts3x_interface_debug_print("sts3x: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
81 sts3x_interface_debug_print("sts3x: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
82 sts3x_interface_debug_print("sts3x: max current is %0.2fmA.\n", info.max_current_ma);
83 sts3x_interface_debug_print("sts3x: max temperature is %0.1fC.\n", info.temperature_max);
84 sts3x_interface_debug_print("sts3x: min temperature is %0.1fC.\n", info.temperature_min);
85 }
86
87 /* start read test */
88 sts3x_interface_debug_print("sts3x: start read test.\n");
89
90 /* set address pin */
91 res = sts3x_set_addr_pin(&gs_handle, addr_pin);
92 if (res != 0)
93 {
94 sts3x_interface_debug_print("sts3x: set addr pin failed.\n");
95
96 return 1;
97 }
98
99 /* sts3x init */
100 res = sts3x_init(&gs_handle);
101 if (res != 0)
102 {
103 sts3x_interface_debug_print("sts3x: init failed.\n");
104
105 return 1;
106 }
107
108 /* wait 10 ms */
110
111 /* disable heater */
112 res = sts3x_set_heater(&gs_handle, STS3X_BOOL_FALSE);
113 if (res != 0)
114 {
115 sts3x_interface_debug_print("sts3x: set heater failed.\n");
116 (void)sts3x_deinit(&gs_handle);
117
118 return 1;
119 }
120
121 /* wait 10 ms */
123 sts3x_interface_debug_print("sts3x: continuous read.\n");
124
125 /* set low repeatability */
126 sts3x_interface_debug_print("sts3x: set low repeatability.\n");
128 if (res != 0)
129 {
130 sts3x_interface_debug_print("sts3x: set repeatability failed.\n");
131 (void)sts3x_deinit(&gs_handle);
132
133 return 1;
134 }
135
136 /* set rate 0.5Hz */
137 sts3x_interface_debug_print("sts3x: set rate 0.5Hz.\n");
138
139 /* start continuous read */
141 if (res != 0)
142 {
143 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
144 (void)sts3x_deinit(&gs_handle);
145
146 return 1;
147 }
148
149 /* wait 10 ms */
151 for (i = 0; i < times; i++)
152 {
153 uint16_t temperature_raw;
154 float temperature_s;
155
156 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
157 if (res != 0)
158 {
159 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
160 (void)sts3x_deinit(&gs_handle);
161
162 return 1;
163 }
164 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
165
166 /* wait 2500 ms */
168 }
169
170 /* stop continuous read */
171 res = sts3x_stop_continuous_read(&gs_handle);
172 if (res != 0)
173 {
174 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
175 (void)sts3x_deinit(&gs_handle);
176
177 return 1;
178 }
179
180 /* wait 10 ms */
182
183 /* set rate 1Hz */
184 sts3x_interface_debug_print("sts3x: set rate 1Hz.\n");
185
186 /* start continuous read */
188 if (res != 0)
189 {
190 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
191 (void)sts3x_deinit(&gs_handle);
192
193 return 1;
194 }
195
196 /* wait 10 ms */
198 for (i = 0; i < times; i++)
199 {
200 uint16_t temperature_raw;
201 float temperature_s;
202
203 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
204 if (res != 0)
205 {
206 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
207 (void)sts3x_deinit(&gs_handle);
208
209 return 1;
210 }
211 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
212
213 /* wait 1500 ms */
215 }
216
217 /* stop continuous read */
218 res = sts3x_stop_continuous_read(&gs_handle);
219 if (res != 0)
220 {
221 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
222 (void)sts3x_deinit(&gs_handle);
223
224 return 1;
225 }
226
227 /* wait 10 ms */
229
230 /* set rate 2Hz */
231 sts3x_interface_debug_print("sts3x: set rate 2Hz.\n");
232
233 /* start continuous read */
235 if (res != 0)
236 {
237 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
238 (void)sts3x_deinit(&gs_handle);
239
240 return 1;
241 }
242
243 /* wait 10 ms */
245 for (i = 0; i < times; i++)
246 {
247 uint16_t temperature_raw;
248 float temperature_s;
249
250 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
251 if (res != 0)
252 {
253 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
254 (void)sts3x_deinit(&gs_handle);
255
256 return 1;
257 }
258 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
259
260 /* wait 1000 ms */
262 }
263
264 /* stop continuous read */
265 res = sts3x_stop_continuous_read(&gs_handle);
266 if (res != 0)
267 {
268 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
269 (void)sts3x_deinit(&gs_handle);
270
271 return 1;
272 }
273
274 /* wait 10 ms */
276
277 /* set rate 4Hz */
278 sts3x_interface_debug_print("sts3x: set rate 4Hz.\n");
279
280 /* start continuous read */
282 if (res != 0)
283 {
284 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
285 (void)sts3x_deinit(&gs_handle);
286
287 return 1;
288 }
289
290 /* wait 10 ms */
292 for (i = 0; i < times; i++)
293 {
294 uint16_t temperature_raw;
295 float temperature_s;
296
297 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
298 if (res != 0)
299 {
300 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
301 (void)sts3x_deinit(&gs_handle);
302
303 return 1;
304 }
305 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
306
307 /* wait 500 ms */
309 }
310
311 /* stop continuous read */
312 res = sts3x_stop_continuous_read(&gs_handle);
313 if (res != 0)
314 {
315 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
316 (void)sts3x_deinit(&gs_handle);
317
318 return 1;
319 }
320
321 /* wait 10 ms */
323
324 /* set rate 10Hz */
325 sts3x_interface_debug_print("sts3x: set rate 10Hz.\n");
326
327 /* start continuous read */
329 if (res != 0)
330 {
331 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
332 (void)sts3x_deinit(&gs_handle);
333
334 return 1;
335 }
336
337 /* wait 10 ms */
339 for (i = 0; i < times; i++)
340 {
341 uint16_t temperature_raw;
342 float temperature_s;
343
344 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
345 if (res != 0)
346 {
347 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
348 (void)sts3x_deinit(&gs_handle);
349
350 return 1;
351 }
352 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
353
354 /* wait 500 ms */
356 }
357
358 /* stop continuous read */
359 res = sts3x_stop_continuous_read(&gs_handle);
360 if (res != 0)
361 {
362 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
363 (void)sts3x_deinit(&gs_handle);
364
365 return 1;
366 }
367
368 /* wait 10 ms */
370
371 /* set medium repeatability */
372 sts3x_interface_debug_print("sts3x: set medium repeatability.\n");
374 if (res != 0)
375 {
376 sts3x_interface_debug_print("sts3x: set repeatability failed.\n");
377 (void)sts3x_deinit(&gs_handle);
378
379 return 1;
380 }
381
382 /* set rate 0.5Hz */
383 sts3x_interface_debug_print("sts3x: set rate 0.5Hz.\n");
384
385 /* start continuous read */
387 if (res != 0)
388 {
389 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
390 (void)sts3x_deinit(&gs_handle);
391
392 return 1;
393 }
394
395 /* wait 10 ms */
397 for (i = 0; i < times; i++)
398 {
399 uint16_t temperature_raw;
400 float temperature_s;
401
402 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
403 if (res != 0)
404 {
405 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
406 (void)sts3x_deinit(&gs_handle);
407
408 return 1;
409 }
410 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
411
412 /* wait 2500 ms */
414 }
415
416 /* stop continuous read */
417 res = sts3x_stop_continuous_read(&gs_handle);
418 if (res != 0)
419 {
420 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
421 (void)sts3x_deinit(&gs_handle);
422
423 return 1;
424 }
425
426 /* wait 10 ms */
428
429 /* set rate 1Hz */
430 sts3x_interface_debug_print("sts3x: set rate 1Hz.\n");
431
432 /* start continuous read */
434 if (res != 0)
435 {
436 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
437 (void)sts3x_deinit(&gs_handle);
438
439 return 1;
440 }
441
442 /* wait 10 ms */
444 for (i = 0; i < times; i++)
445 {
446 uint16_t temperature_raw;
447 float temperature_s;
448
449 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
450 if (res != 0)
451 {
452 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
453 (void)sts3x_deinit(&gs_handle);
454
455 return 1;
456 }
457 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
458
459 /* wait 1500 ms */
461 }
462
463 /* stop continuous read */
464 res = sts3x_stop_continuous_read(&gs_handle);
465 if (res != 0)
466 {
467 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
468 (void)sts3x_deinit(&gs_handle);
469
470 return 1;
471 }
472
473 /* wait 10 ms */
475
476 /* set rate 2Hz */
477 sts3x_interface_debug_print("sts3x: set rate 2Hz.\n");
478
479 /* start continuous read */
481 if (res != 0)
482 {
483 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
484 (void)sts3x_deinit(&gs_handle);
485
486 return 1;
487 }
488
489 /* wait 10 ms */
491 for (i = 0; i < times; i++)
492 {
493 uint16_t temperature_raw;
494 float temperature_s;
495
496 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
497 if (res != 0)
498 {
499 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
500 (void)sts3x_deinit(&gs_handle);
501
502 return 1;
503 }
504 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
505
506 /* wait 1000 ms */
508 }
509
510 /* stop continuous read */
511 res = sts3x_stop_continuous_read(&gs_handle);
512 if (res != 0)
513 {
514 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
515 (void)sts3x_deinit(&gs_handle);
516
517 return 1;
518 }
519
520 /* wait 10 ms */
522
523 /* set rate 4Hz */
524 sts3x_interface_debug_print("sts3x: set rate 4Hz.\n");
525
526 /* start continuous read */
528 if (res != 0)
529 {
530 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
531 (void)sts3x_deinit(&gs_handle);
532
533 return 1;
534 }
535
536 /* wait 10 ms */
538 for (i = 0; i < times; i++)
539 {
540 uint16_t temperature_raw;
541 float temperature_s;
542
543 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
544 if (res != 0)
545 {
546 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
547 (void)sts3x_deinit(&gs_handle);
548
549 return 1;
550 }
551 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
552
553 /* wait 500 ms */
555 }
556
557 /* stop continuous read */
558 res = sts3x_stop_continuous_read(&gs_handle);
559 if (res != 0)
560 {
561 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
562 (void)sts3x_deinit(&gs_handle);
563
564 return 1;
565 }
566
567 /* wait 10 ms */
569
570 /* set rate 10Hz */
571 sts3x_interface_debug_print("sts3x: set rate 10Hz.\n");
572
573 /* start continuous read */
575 if (res != 0)
576 {
577 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
578 (void)sts3x_deinit(&gs_handle);
579
580 return 1;
581 }
582
583 /* wait 10 ms */
585 for (i = 0; i < times; i++)
586 {
587 uint16_t temperature_raw;
588 float temperature_s;
589
590 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
591 if (res != 0)
592 {
593 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
594 (void)sts3x_deinit(&gs_handle);
595
596 return 1;
597 }
598 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
599
600 /* wait 500 ms */
602 }
603
604 /* stop continuous read */
605 res = sts3x_stop_continuous_read(&gs_handle);
606 if (res != 0)
607 {
608 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
609 (void)sts3x_deinit(&gs_handle);
610
611 return 1;
612 }
613
614 /* wait 10 ms */
616
617 /* set high repeatability */
618 sts3x_interface_debug_print("sts3x: set high repeatability.\n");
620 if (res != 0)
621 {
622 sts3x_interface_debug_print("sts3x: set repeatability failed.\n");
623 (void)sts3x_deinit(&gs_handle);
624
625 return 1;
626 }
627
628 /* set rate 0.5Hz */
629 sts3x_interface_debug_print("sts3x: set rate 0.5Hz.\n");
630
631 /* start continuous read */
633 if (res != 0)
634 {
635 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
636 (void)sts3x_deinit(&gs_handle);
637
638 return 1;
639 }
640
641 /* wait 10 ms */
643 for (i = 0; i < times; i++)
644 {
645 uint16_t temperature_raw;
646 float temperature_s;
647
648 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
649 if (res != 0)
650 {
651 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
652 (void)sts3x_deinit(&gs_handle);
653
654 return 1;
655 }
656 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
657
658 /* wait 2500 ms */
660 }
661
662 /* stop continuous read */
663 res = sts3x_stop_continuous_read(&gs_handle);
664 if (res != 0)
665 {
666 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
667 (void)sts3x_deinit(&gs_handle);
668
669 return 1;
670 }
671
672 /* wait 10 ms */
674
675 /* set rate 1Hz */
676 sts3x_interface_debug_print("sts3x: set rate 1Hz.\n");
677
678 /* start continuous read */
680 if (res != 0)
681 {
682 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
683 (void)sts3x_deinit(&gs_handle);
684
685 return 1;
686 }
687
688 /* wait 10 ms */
690 for (i = 0; i < times; i++)
691 {
692 uint16_t temperature_raw;
693 float temperature_s;
694
695 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
696 if (res != 0)
697 {
698 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
699 (void)sts3x_deinit(&gs_handle);
700
701 return 1;
702 }
703 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
704
705 /* wait 1500 ms */
707 }
708
709 /* stop continuous read */
710 res = sts3x_stop_continuous_read(&gs_handle);
711 if (res != 0)
712 {
713 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
714 (void)sts3x_deinit(&gs_handle);
715
716 return 1;
717 }
718
719 /* wait 10 ms */
721
722 /* set rate 2Hz */
723 sts3x_interface_debug_print("sts3x: set rate 2Hz.\n");
724
725 /* start continuous read */
727 if (res != 0)
728 {
729 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
730 (void)sts3x_deinit(&gs_handle);
731
732 return 1;
733 }
734
735 /* wait 10 ms */
737 for (i = 0; i < times; i++)
738 {
739 uint16_t temperature_raw;
740 float temperature_s;
741
742 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
743 if (res != 0)
744 {
745 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
746 (void)sts3x_deinit(&gs_handle);
747
748 return 1;
749 }
750 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
751
752 /* wait 1000 ms */
754 }
755
756 /* stop continuous read */
757 res = sts3x_stop_continuous_read(&gs_handle);
758 if (res != 0)
759 {
760 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
761 (void)sts3x_deinit(&gs_handle);
762
763 return 1;
764 }
765
766 /* wait 10 ms */
768
769 /* set rate 4Hz */
770 sts3x_interface_debug_print("sts3x: set rate 4Hz.\n");
771
772 /* start continuous read */
774 if (res != 0)
775 {
776 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
777 (void)sts3x_deinit(&gs_handle);
778
779 return 1;
780 }
781
782 /* wait 10 ms */
784 for (i = 0; i < times; i++)
785 {
786 uint16_t temperature_raw;
787 float temperature_s;
788
789 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
790 if (res != 0)
791 {
792 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
793 (void)sts3x_deinit(&gs_handle);
794
795 return 1;
796 }
797 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
798
799 /* wait 500 ms */
801 }
802
803 /* stop continuous read */
804 res = sts3x_stop_continuous_read(&gs_handle);
805 if (res != 0)
806 {
807 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
808 (void)sts3x_deinit(&gs_handle);
809
810 return 1;
811 }
812
813 /* wait 10 ms */
815
816 /* set rate 10Hz */
817 sts3x_interface_debug_print("sts3x: set rate 10Hz.\n");
818
819 /* start continuous read */
821 if (res != 0)
822 {
823 sts3x_interface_debug_print("sts3x: start continuous failed.\n");
824 (void)sts3x_deinit(&gs_handle);
825
826 return 1;
827 }
828
829 /* wait 10 ms */
831 for (i = 0; i < times; i++)
832 {
833 uint16_t temperature_raw;
834 float temperature_s;
835
836 res = sts3x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s);
837 if (res != 0)
838 {
839 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
840 (void)sts3x_deinit(&gs_handle);
841
842 return 1;
843 }
844 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
845
846 /* wait 500 ms */
848 }
849
850 /* stop continuous read */
851 res = sts3x_stop_continuous_read(&gs_handle);
852 if (res != 0)
853 {
854 sts3x_interface_debug_print("sts3x: stop continuous failed.\n");
855 (void)sts3x_deinit(&gs_handle);
856
857 return 1;
858 }
859
860 /* wait 10 ms */
862
863 /* link iic read address16 with scl */
865 sts3x_interface_debug_print("sts3x: single read.\n");
866
867 /* set low repeatability */
868 sts3x_interface_debug_print("sts3x: set low repeatability.\n");
870 if (res != 0)
871 {
872 sts3x_interface_debug_print("sts3x: set repeatability failed.\n");
873 (void)sts3x_deinit(&gs_handle);
874
875 return 1;
876 }
877 for (i = 0; i < times; i++)
878 {
879 uint16_t temperature_raw;
880 float temperature_s;
881
882 res = sts3x_single_read(&gs_handle, STS3X_BOOL_TRUE, (uint16_t *)&temperature_raw, (float *)&temperature_s);
883 if (res != 0)
884 {
885 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
886 (void)sts3x_deinit(&gs_handle);
887
888 return 1;
889 }
890 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
891
892 /* wait 1000 ms */
894 }
895
896 /* set medium repeatability */
897 sts3x_interface_debug_print("sts3x: set medium repeatability.\n");
899 if (res != 0)
900 {
901 sts3x_interface_debug_print("sts3x: set repeatability failed.\n");
902 (void)sts3x_deinit(&gs_handle);
903
904 return 1;
905 }
906 for (i = 0; i < times; i++)
907 {
908 uint16_t temperature_raw;
909 float temperature_s;
910
911 res = sts3x_single_read(&gs_handle, STS3X_BOOL_TRUE, (uint16_t *)&temperature_raw, (float *)&temperature_s);
912 if (res != 0)
913 {
914 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
915 (void)sts3x_deinit(&gs_handle);
916
917 return 1;
918 }
919 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
920
921 /* wait 1000 ms */
923 }
924
925 /* set high repeatability */
926 sts3x_interface_debug_print("sts3x: set high repeatability.\n");
928 if (res != 0)
929 {
930 sts3x_interface_debug_print("sts3x: set repeatability failed.\n");
931 (void)sts3x_deinit(&gs_handle);
932
933 return 1;
934 }
935 for (i = 0; i < times; i++)
936 {
937 uint16_t temperature_raw;
938 float temperature_s;
939
940 res = sts3x_single_read(&gs_handle, STS3X_BOOL_TRUE, (uint16_t *)&temperature_raw, (float *)&temperature_s);
941 if (res != 0)
942 {
943 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
944 (void)sts3x_deinit(&gs_handle);
945
946 return 1;
947 }
948 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
949
950 /* wait 1000 ms */
952 }
953
954 /* disable clock stretching */
955 sts3x_interface_debug_print("sts3x: disable clock stretching.\n");
956 for (i = 0; i < times; i++)
957 {
958 uint16_t temperature_raw;
959 float temperature_s;
960
961 res = sts3x_single_read(&gs_handle, STS3X_BOOL_FALSE, (uint16_t *)&temperature_raw, (float *)&temperature_s);
962 if (res != 0)
963 {
964 sts3x_interface_debug_print("sts3x: continuous read failed.\n");
965 (void)sts3x_deinit(&gs_handle);
966
967 return 1;
968 }
969 sts3x_interface_debug_print("sts3x: temperature is %0.2fC.\n", temperature_s);
970
971 /* wait 1000 ms */
973 }
974
975 /* finish read test */
976 sts3x_interface_debug_print("sts3x: finish read test.\n");
977 (void)sts3x_deinit(&gs_handle);
978
979 return 0;
980}
driver sts3x read test 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
uint8_t sts3x_info(sts3x_info_t *info)
get chip's information
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
struct sts3x_info_s sts3x_info_t
sts3x information structure definition
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
uint8_t sts3x_single_read(sts3x_handle_t *handle, sts3x_bool_t clock_stretching_enable, uint16_t *temperature_raw, float *temperature_s)
read data once
@ STS3X_RATE_1HZ
@ STS3X_RATE_4HZ
@ STS3X_RATE_0P5HZ
@ STS3X_RATE_10HZ
@ STS3X_RATE_2HZ
@ STS3X_REPEATABILITY_HIGH
@ STS3X_REPEATABILITY_MEDIUM
@ STS3X_REPEATABILITY_LOW
@ STS3X_BOOL_FALSE
@ STS3X_BOOL_TRUE
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_scl_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 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
uint8_t sts3x_read_test(sts3x_address_t addr_pin, 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]