LibDriver SHT85
Loading...
Searching...
No Matches
driver_sht85_read_test.c
Go to the documentation of this file.
1
36
38
39static sht85_handle_t gs_handle;
40
49uint8_t sht85_read_test(uint32_t times)
50{
51 uint8_t res;
52 uint32_t i;
53 sht85_info_t info;
54
55 /* link functions */
63
64 /* sht85 info */
65 res = sht85_info(&info);
66 if (res != 0)
67 {
68 sht85_interface_debug_print("sht85: get info failed.\n");
69
70 return 1;
71 }
72 else
73 {
74 /* print chip information */
75 sht85_interface_debug_print("sht85: chip is %s.\n", info.chip_name);
76 sht85_interface_debug_print("sht85: manufacturer is %s.\n", info.manufacturer_name);
77 sht85_interface_debug_print("sht85: interface is %s.\n", info.interface);
78 sht85_interface_debug_print("sht85: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
79 sht85_interface_debug_print("sht85: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
80 sht85_interface_debug_print("sht85: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
81 sht85_interface_debug_print("sht85: max current is %0.2fmA.\n", info.max_current_ma);
82 sht85_interface_debug_print("sht85: max temperature is %0.1fC.\n", info.temperature_max);
83 sht85_interface_debug_print("sht85: min temperature is %0.1fC.\n", info.temperature_min);
84 }
85
86 /* start read test */
87 sht85_interface_debug_print("sht85: start read test.\n");
88
89 /* sht85 init */
90 res = sht85_init(&gs_handle);
91 if (res != 0)
92 {
93 sht85_interface_debug_print("sht85: init failed.\n");
94
95 return 1;
96 }
97
98 /* wait 10 ms */
100
101 /* set art */
102 res = sht85_set_art(&gs_handle);
103 if (res != 0)
104 {
105 sht85_interface_debug_print("sht85: set art failed.\n");
106 (void)sht85_deinit(&gs_handle);
107
108 return 1;
109 }
110
111 /* wait 10 ms */
113
114 /* set default heater */
115 res = sht85_set_heater(&gs_handle, SHT85_BOOL_TRUE);
116 if (res != 0)
117 {
118 sht85_interface_debug_print("sht85: set heater failed.\n");
119 (void)sht85_deinit(&gs_handle);
120
121 return 1;
122 }
123
124 /* wait 10 ms */
126 sht85_interface_debug_print("sht85: continuous read.\n");
127
128 /* set low repeatability */
129 sht85_interface_debug_print("sht85: set low repeatability.\n");
131 if (res != 0)
132 {
133 sht85_interface_debug_print("sht85: set repeatability failed.\n");
134 (void)sht85_deinit(&gs_handle);
135
136 return 1;
137 }
138
139 /* set rate 0.5Hz */
140 sht85_interface_debug_print("sht85: set rate 0.5Hz.\n");
141
142 /* start continuous read */
144 if (res != 0)
145 {
146 sht85_interface_debug_print("sht85: start continuous failed.\n");
147 (void)sht85_deinit(&gs_handle);
148
149 return 1;
150 }
151
152 /* wait 10 ms */
154 for (i = 0; i < times; i++)
155 {
156 uint16_t temperature_raw;
157 float temperature_s;
158 uint16_t humidity_raw;
159 float humidity_s;
160
161 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
162 if (res != 0)
163 {
164 sht85_interface_debug_print("sht85: continuous read failed.\n");
165 (void)sht85_deinit(&gs_handle);
166
167 return 1;
168 }
169 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
170 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
171
172 /* wait 2500 ms */
174 }
175
176 /* stop continuous read */
177 res = sht85_stop_continuous_read(&gs_handle);
178 if (res != 0)
179 {
180 sht85_interface_debug_print("sht85: stop continuous failed.\n");
181 (void)sht85_deinit(&gs_handle);
182
183 return 1;
184 }
185
186 /* wait 10 ms */
188
189 /* set rate 1Hz */
190 sht85_interface_debug_print("sht85: set rate 1Hz.\n");
191
192 /* start continuous read */
194 if (res != 0)
195 {
196 sht85_interface_debug_print("sht85: start continuous failed.\n");
197 (void)sht85_deinit(&gs_handle);
198
199 return 1;
200 }
201
202 /* wait 10 ms */
204 for (i = 0; i < times; i++)
205 {
206 uint16_t temperature_raw;
207 float temperature_s;
208 uint16_t humidity_raw;
209 float humidity_s;
210
211 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
212 if (res != 0)
213 {
214 sht85_interface_debug_print("sht85: continuous read failed.\n");
215 (void)sht85_deinit(&gs_handle);
216
217 return 1;
218 }
219 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
220 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
221
222 /* wait 1500 ms */
224 }
225
226 /* stop continuous read */
227 res = sht85_stop_continuous_read(&gs_handle);
228 if (res != 0)
229 {
230 sht85_interface_debug_print("sht85: stop continuous failed.\n");
231 (void)sht85_deinit(&gs_handle);
232
233 return 1;
234 }
235
236 /* wait 10 ms */
238
239 /* set rate 2Hz */
240 sht85_interface_debug_print("sht85: set rate 2Hz.\n");
241
242 /* start continuous read */
244 if (res != 0)
245 {
246 sht85_interface_debug_print("sht85: start continuous failed.\n");
247 (void)sht85_deinit(&gs_handle);
248
249 return 1;
250 }
251
252 /* wait 10 ms */
254 for (i = 0; i < times; i++)
255 {
256 uint16_t temperature_raw;
257 float temperature_s;
258 uint16_t humidity_raw;
259 float humidity_s;
260
261 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
262 if (res != 0)
263 {
264 sht85_interface_debug_print("sht85: continuous read failed.\n");
265 (void)sht85_deinit(&gs_handle);
266
267 return 1;
268 }
269 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
270 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
271
272 /* wait 1000 ms */
274 }
275
276 /* stop continuous read */
277 res = sht85_stop_continuous_read(&gs_handle);
278 if (res != 0)
279 {
280 sht85_interface_debug_print("sht85: stop continuous failed.\n");
281 (void)sht85_deinit(&gs_handle);
282
283 return 1;
284 }
285
286 /* wait 10 ms */
288
289 /* set rate 4Hz */
290 sht85_interface_debug_print("sht85: set rate 4Hz.\n");
291
292 /* start continuous read */
294 if (res != 0)
295 {
296 sht85_interface_debug_print("sht85: start continuous failed.\n");
297 (void)sht85_deinit(&gs_handle);
298
299 return 1;
300 }
301
302 /* wait 10 ms */
304 for (i = 0; i < times; i++)
305 {
306 uint16_t temperature_raw;
307 float temperature_s;
308 uint16_t humidity_raw;
309 float humidity_s;
310
311 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
312 if (res != 0)
313 {
314 sht85_interface_debug_print("sht85: continuous read failed.\n");
315 (void)sht85_deinit(&gs_handle);
316
317 return 1;
318 }
319 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
320 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
321
322 /* wait 500 ms */
324 }
325
326 /* stop continuous read */
327 res = sht85_stop_continuous_read(&gs_handle);
328 if (res != 0)
329 {
330 sht85_interface_debug_print("sht85: stop continuous failed.\n");
331 (void)sht85_deinit(&gs_handle);
332
333 return 1;
334 }
335
336 /* wait 10 ms */
338
339 /* set rate 10Hz */
340 sht85_interface_debug_print("sht85: set rate 10Hz.\n");
341
342 /* start continuous read */
344 if (res != 0)
345 {
346 sht85_interface_debug_print("sht85: start continuous failed.\n");
347 (void)sht85_deinit(&gs_handle);
348
349 return 1;
350 }
351
352 /* wait 10 ms */
354 for (i = 0; i < times; i++)
355 {
356 uint16_t temperature_raw;
357 float temperature_s;
358 uint16_t humidity_raw;
359 float humidity_s;
360
361 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
362 if (res != 0)
363 {
364 sht85_interface_debug_print("sht85: continuous read failed.\n");
365 (void)sht85_deinit(&gs_handle);
366
367 return 1;
368 }
369 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
370 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
371
372 /* wait 500 ms */
374 }
375
376 /* stop continuous read */
377 res = sht85_stop_continuous_read(&gs_handle);
378 if (res != 0)
379 {
380 sht85_interface_debug_print("sht85: stop continuous failed.\n");
381 (void)sht85_deinit(&gs_handle);
382
383 return 1;
384 }
385
386 /* wait 10 ms */
388
389 /* set medium repeatability */
390 sht85_interface_debug_print("sht85: set medium repeatability.\n");
392 if (res != 0)
393 {
394 sht85_interface_debug_print("sht85: set repeatability failed.\n");
395 (void)sht85_deinit(&gs_handle);
396
397 return 1;
398 }
399
400 /* set rate 0.5Hz */
401 sht85_interface_debug_print("sht85: set rate 0.5Hz.\n");
402
403 /* start continuous read */
405 if (res != 0)
406 {
407 sht85_interface_debug_print("sht85: start continuous failed.\n");
408 (void)sht85_deinit(&gs_handle);
409
410 return 1;
411 }
412
413 /* wait 10 ms */
415 for (i = 0; i < times; i++)
416 {
417 uint16_t temperature_raw;
418 float temperature_s;
419 uint16_t humidity_raw;
420 float humidity_s;
421
422 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
423 if (res != 0)
424 {
425 sht85_interface_debug_print("sht85: continuous read failed.\n");
426 (void)sht85_deinit(&gs_handle);
427
428 return 1;
429 }
430 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
431 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
432
433 /* wait 2500 ms */
435 }
436
437 /* stop continuous read */
438 res = sht85_stop_continuous_read(&gs_handle);
439 if (res != 0)
440 {
441 sht85_interface_debug_print("sht85: stop continuous failed.\n");
442 (void)sht85_deinit(&gs_handle);
443
444 return 1;
445 }
446
447 /* wait 10 ms */
449
450 /* set rate 1Hz */
451 sht85_interface_debug_print("sht85: set rate 1Hz.\n");
452
453 /* start continuous read */
455 if (res != 0)
456 {
457 sht85_interface_debug_print("sht85: start continuous failed.\n");
458 (void)sht85_deinit(&gs_handle);
459
460 return 1;
461 }
462
463 /* wait 10 ms */
465 for (i = 0; i < times; i++)
466 {
467 uint16_t temperature_raw;
468 float temperature_s;
469 uint16_t humidity_raw;
470 float humidity_s;
471
472 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
473 if (res != 0)
474 {
475 sht85_interface_debug_print("sht85: continuous read failed.\n");
476 (void)sht85_deinit(&gs_handle);
477
478 return 1;
479 }
480 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
481 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
482
483 /* wait 1500 ms */
485 }
486
487 /* stop continuous read */
488 res = sht85_stop_continuous_read(&gs_handle);
489 if (res != 0)
490 {
491 sht85_interface_debug_print("sht85: stop continuous failed.\n");
492 (void)sht85_deinit(&gs_handle);
493
494 return 1;
495 }
496
497 /* wait 10 ms */
499
500 /* set rate 2Hz */
501 sht85_interface_debug_print("sht85: set rate 2Hz.\n");
502
503 /* start continuous read */
505 if (res != 0)
506 {
507 sht85_interface_debug_print("sht85: start continuous failed.\n");
508 (void)sht85_deinit(&gs_handle);
509
510 return 1;
511 }
512
513 /* wait 10 ms */
515 for (i = 0; i < times; i++)
516 {
517 uint16_t temperature_raw;
518 float temperature_s;
519 uint16_t humidity_raw;
520 float humidity_s;
521
522 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
523 if (res != 0)
524 {
525 sht85_interface_debug_print("sht85: continuous read failed.\n");
526 (void)sht85_deinit(&gs_handle);
527
528 return 1;
529 }
530 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
531 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
532
533 /* wait 1000 ms */
535 }
536
537 /* stop continuous read */
538 res = sht85_stop_continuous_read(&gs_handle);
539 if (res != 0)
540 {
541 sht85_interface_debug_print("sht85: stop continuous failed.\n");
542 (void)sht85_deinit(&gs_handle);
543
544 return 1;
545 }
546
547 /* wait 10 ms */
549
550 /* set rate 4Hz */
551 sht85_interface_debug_print("sht85: set rate 4Hz.\n");
552
553 /* start continuous read */
555 if (res != 0)
556 {
557 sht85_interface_debug_print("sht85: start continuous failed.\n");
558 (void)sht85_deinit(&gs_handle);
559
560 return 1;
561 }
562
563 /* wait 10 ms */
565 for (i = 0; i < times; i++)
566 {
567 uint16_t temperature_raw;
568 float temperature_s;
569 uint16_t humidity_raw;
570 float humidity_s;
571
572 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
573 if (res != 0)
574 {
575 sht85_interface_debug_print("sht85: continuous read failed.\n");
576 (void)sht85_deinit(&gs_handle);
577
578 return 1;
579 }
580 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
581 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
582
583 /* wait 500 ms */
585 }
586
587 /* stop continuous read */
588 res = sht85_stop_continuous_read(&gs_handle);
589 if (res != 0)
590 {
591 sht85_interface_debug_print("sht85: stop continuous failed.\n");
592 (void)sht85_deinit(&gs_handle);
593
594 return 1;
595 }
596
597 /* wait 10 ms */
599
600 /* set rate 10Hz */
601 sht85_interface_debug_print("sht85: set rate 10Hz.\n");
602
603 /* start continuous read */
605 if (res != 0)
606 {
607 sht85_interface_debug_print("sht85: start continuous failed.\n");
608 (void)sht85_deinit(&gs_handle);
609
610 return 1;
611 }
612
613 /* wait 10 ms */
615 for (i = 0; i < times; i++)
616 {
617 uint16_t temperature_raw;
618 float temperature_s;
619 uint16_t humidity_raw;
620 float humidity_s;
621
622 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
623 if (res != 0)
624 {
625 sht85_interface_debug_print("sht85: continuous read failed.\n");
626 (void)sht85_deinit(&gs_handle);
627
628 return 1;
629 }
630 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
631 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
632
633 /* wait 500 ms */
635 }
636
637 /* stop continuous read */
638 res = sht85_stop_continuous_read(&gs_handle);
639 if (res != 0)
640 {
641 sht85_interface_debug_print("sht85: stop continuous failed.\n");
642 (void)sht85_deinit(&gs_handle);
643
644 return 1;
645 }
646
647 /* wait 10 ms */
649
650 /* set high repeatability */
651 sht85_interface_debug_print("sht85: set high repeatability.\n");
653 if (res != 0)
654 {
655 sht85_interface_debug_print("sht85: set repeatability failed.\n");
656 (void)sht85_deinit(&gs_handle);
657
658 return 1;
659 }
660
661 /* set rate 0.5Hz */
662 sht85_interface_debug_print("sht85: set rate 0.5Hz.\n");
663
664 /* start continuous read */
666 if (res != 0)
667 {
668 sht85_interface_debug_print("sht85: start continuous failed.\n");
669 (void)sht85_deinit(&gs_handle);
670
671 return 1;
672 }
673
674 /* wait 10 ms */
676 for (i = 0; i < times; i++)
677 {
678 uint16_t temperature_raw;
679 float temperature_s;
680 uint16_t humidity_raw;
681 float humidity_s;
682
683 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
684 if (res != 0)
685 {
686 sht85_interface_debug_print("sht85: continuous read failed.\n");
687 (void)sht85_deinit(&gs_handle);
688
689 return 1;
690 }
691 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
692 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
693
694 /* wait 2500 ms */
696 }
697
698 /* stop continuous read */
699 res = sht85_stop_continuous_read(&gs_handle);
700 if (res != 0)
701 {
702 sht85_interface_debug_print("sht85: stop continuous failed.\n");
703 (void)sht85_deinit(&gs_handle);
704
705 return 1;
706 }
707
708 /* wait 10 ms */
710
711 /* set rate 1Hz */
712 sht85_interface_debug_print("sht85: set rate 1Hz.\n");
713
714 /* start continuous read */
716 if (res != 0)
717 {
718 sht85_interface_debug_print("sht85: start continuous failed.\n");
719 (void)sht85_deinit(&gs_handle);
720
721 return 1;
722 }
723
724 /* wait 10 ms */
726 for (i = 0; i < times; i++)
727 {
728 uint16_t temperature_raw;
729 float temperature_s;
730 uint16_t humidity_raw;
731 float humidity_s;
732
733 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
734 if (res != 0)
735 {
736 sht85_interface_debug_print("sht85: continuous read failed.\n");
737 (void)sht85_deinit(&gs_handle);
738
739 return 1;
740 }
741 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
742 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
743
744 /* wait 1500 ms */
746 }
747
748 /* stop continuous read */
749 res = sht85_stop_continuous_read(&gs_handle);
750 if (res != 0)
751 {
752 sht85_interface_debug_print("sht85: stop continuous failed.\n");
753 (void)sht85_deinit(&gs_handle);
754
755 return 1;
756 }
757
758 /* wait 10 ms */
760
761 /* set rate 2Hz */
762 sht85_interface_debug_print("sht85: set rate 2Hz.\n");
763
764 /* start continuous read */
766 if (res != 0)
767 {
768 sht85_interface_debug_print("sht85: start continuous failed.\n");
769 (void)sht85_deinit(&gs_handle);
770
771 return 1;
772 }
773
774 /* wait 10 ms */
776 for (i = 0; i < times; i++)
777 {
778 uint16_t temperature_raw;
779 float temperature_s;
780 uint16_t humidity_raw;
781 float humidity_s;
782
783 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
784 if (res != 0)
785 {
786 sht85_interface_debug_print("sht85: continuous read failed.\n");
787 (void)sht85_deinit(&gs_handle);
788
789 return 1;
790 }
791 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
792 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
793
794 /* wait 1000 ms */
796 }
797
798 /* stop continuous read */
799 res = sht85_stop_continuous_read(&gs_handle);
800 if (res != 0)
801 {
802 sht85_interface_debug_print("sht85: stop continuous failed.\n");
803 (void)sht85_deinit(&gs_handle);
804
805 return 1;
806 }
807
808 /* wait 10 ms */
810
811 /* set rate 4Hz */
812 sht85_interface_debug_print("sht85: set rate 4Hz.\n");
813
814 /* start continuous read */
816 if (res != 0)
817 {
818 sht85_interface_debug_print("sht85: start continuous failed.\n");
819 (void)sht85_deinit(&gs_handle);
820
821 return 1;
822 }
823
824 /* wait 10 ms */
826 for (i = 0; i < times; i++)
827 {
828 uint16_t temperature_raw;
829 float temperature_s;
830 uint16_t humidity_raw;
831 float humidity_s;
832
833 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
834 if (res != 0)
835 {
836 sht85_interface_debug_print("sht85: continuous read failed.\n");
837 (void)sht85_deinit(&gs_handle);
838
839 return 1;
840 }
841 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
842 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
843
844 /* wait 500 ms */
846 }
847
848 /* stop continuous read */
849 res = sht85_stop_continuous_read(&gs_handle);
850 if (res != 0)
851 {
852 sht85_interface_debug_print("sht85: stop continuous failed.\n");
853 (void)sht85_deinit(&gs_handle);
854
855 return 1;
856 }
857
858 /* wait 10 ms */
860
861 /* set rate 10Hz */
862 sht85_interface_debug_print("sht85: set rate 10Hz.\n");
863
864 /* start continuous read */
866 if (res != 0)
867 {
868 sht85_interface_debug_print("sht85: start continuous failed.\n");
869 (void)sht85_deinit(&gs_handle);
870
871 return 1;
872 }
873
874 /* wait 10 ms */
876 for (i = 0; i < times; i++)
877 {
878 uint16_t temperature_raw;
879 float temperature_s;
880 uint16_t humidity_raw;
881 float humidity_s;
882
883 res = sht85_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
884 if (res != 0)
885 {
886 sht85_interface_debug_print("sht85: continuous read failed.\n");
887 (void)sht85_deinit(&gs_handle);
888
889 return 1;
890 }
891 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
892 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
893
894 /* wait 500 ms */
896 }
897
898 /* stop continuous read */
899 res = sht85_stop_continuous_read(&gs_handle);
900 if (res != 0)
901 {
902 sht85_interface_debug_print("sht85: stop continuous failed.\n");
903 (void)sht85_deinit(&gs_handle);
904
905 return 1;
906 }
907
908 /* wait 10 ms */
910
911#ifndef SHT85_DISABLE_SINGLE_READ_TEST
912 /* link iic read address16 with scl */
914 sht85_interface_debug_print("sht85: single read.\n");
915
916 /* set low repeatability */
917 sht85_interface_debug_print("sht85: set low repeatability.\n");
919 if (res != 0)
920 {
921 sht85_interface_debug_print("sht85: set repeatability failed.\n");
922 (void)sht85_deinit(&gs_handle);
923
924 return 1;
925 }
926 for (i = 0; i < times; i++)
927 {
928 uint16_t temperature_raw;
929 float temperature_s;
930 uint16_t humidity_raw;
931 float humidity_s;
932
933 res = sht85_single_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
934 if (res != 0)
935 {
936 sht85_interface_debug_print("sht85: single read failed.\n");
937 (void)sht85_deinit(&gs_handle);
938
939 return 1;
940 }
941 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
942 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
943
944 /* wait 1000 ms */
946 }
947
948 /* set medium repeatability */
949 sht85_interface_debug_print("sht85: set medium repeatability.\n");
951 if (res != 0)
952 {
953 sht85_interface_debug_print("sht85: set repeatability failed.\n");
954 (void)sht85_deinit(&gs_handle);
955
956 return 1;
957 }
958 for (i = 0; i < times; i++)
959 {
960 uint16_t temperature_raw;
961 float temperature_s;
962 uint16_t humidity_raw;
963 float humidity_s;
964
965 res = sht85_single_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
966 if (res != 0)
967 {
968 sht85_interface_debug_print("sht85: single read failed.\n");
969 (void)sht85_deinit(&gs_handle);
970
971 return 1;
972 }
973 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
974 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
975
976 /* wait 1000 ms */
978 }
979
980 /* set high repeatability */
981 sht85_interface_debug_print("sht85: set high repeatability.\n");
983 if (res != 0)
984 {
985 sht85_interface_debug_print("sht85: set repeatability failed.\n");
986 (void)sht85_deinit(&gs_handle);
987
988 return 1;
989 }
990 for (i = 0; i < times; i++)
991 {
992 uint16_t temperature_raw;
993 float temperature_s;
994 uint16_t humidity_raw;
995 float humidity_s;
996
997 res = sht85_single_read(&gs_handle, (uint16_t *)&temperature_raw, (float *)&temperature_s, (uint16_t *)&humidity_raw, (float *)&humidity_s);
998 if (res != 0)
999 {
1000 sht85_interface_debug_print("sht85: single read failed.\n");
1001 (void)sht85_deinit(&gs_handle);
1002
1003 return 1;
1004 }
1005 sht85_interface_debug_print("sht85: temperature is %0.2fC.\n", temperature_s);
1006 sht85_interface_debug_print("sht85: humidity is %0.2f%%.\n", humidity_s);
1007
1008 /* wait 1000 ms */
1010 }
1011#endif
1012
1013 /* finish read test */
1014 sht85_interface_debug_print("sht85: finish read test.\n");
1015 (void)sht85_deinit(&gs_handle);
1016
1017 return 0;
1018}
driver sht85 read test header file
uint8_t sht85_start_continuous_read(sht85_handle_t *handle, sht85_rate_t rate)
start reading
uint8_t sht85_continuous_read(sht85_handle_t *handle, uint16_t *temperature_raw, float *temperature_s, uint16_t *humidity_raw, float *humidity_s)
read data continuously
uint8_t sht85_set_heater(sht85_handle_t *handle, sht85_bool_t enable)
enable or disable the chip heater
struct sht85_info_s sht85_info_t
sht85 information structure definition
uint8_t sht85_init(sht85_handle_t *handle)
initialize the chip
uint8_t sht85_set_repeatability(sht85_handle_t *handle, sht85_repeatability_t repeatability)
set the measurement repeatability
uint8_t sht85_stop_continuous_read(sht85_handle_t *handle)
stop reading
uint8_t sht85_deinit(sht85_handle_t *handle)
close the chip
uint8_t sht85_info(sht85_info_t *info)
get chip's information
uint8_t sht85_set_art(sht85_handle_t *handle)
set the chip art
struct sht85_handle_s sht85_handle_t
sht85 handle structure definition
uint8_t sht85_single_read(sht85_handle_t *handle, uint16_t *temperature_raw, float *temperature_s, uint16_t *humidity_raw, float *humidity_s)
read data once
@ SHT85_REPEATABILITY_HIGH
@ SHT85_REPEATABILITY_LOW
@ SHT85_REPEATABILITY_MEDIUM
@ SHT85_RATE_0P5HZ
@ SHT85_RATE_4HZ
@ SHT85_RATE_2HZ
@ SHT85_RATE_1HZ
@ SHT85_RATE_10HZ
@ SHT85_BOOL_TRUE
uint8_t sht85_interface_iic_deinit(void)
interface iic bus deinit
uint8_t sht85_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
void sht85_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t sht85_interface_iic_init(void)
interface iic bus init
uint8_t sht85_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 sht85_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t sht85_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 sht85_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]