LibDriver BME680
Loading...
Searching...
No Matches
driver_bme680_register_test.c
Go to the documentation of this file.
1
36
38#include "stdlib.h"
39
40static bme680_handle_t gs_handle;
41
52{
53 uint8_t res;
54 uint8_t reg;
55 uint8_t reg_check;
56 uint8_t i;
57 uint8_t index;
58 uint8_t index_check;
59 uint16_t ms;
60 float degree_celsius;
61 float ma;
62 float ma_check;
63 bme680_info_t info;
64 bme680_address_t addr_pin_check;
65 bme680_interface_t interface_check;
66 bme680_oversampling_t oversampling;
67 bme680_mode_t mode;
68 bme680_filter_t filter;
70 bme680_bool_t enable;
71
72 /* link interface function */
84
85 /* get bme680 info */
86 res = bme680_info(&info);
87 if (res != 0)
88 {
89 bme680_interface_debug_print("bme680: get info failed.\n");
90
91 return 1;
92 }
93 else
94 {
95 /* print bme680 */
96 bme680_interface_debug_print("bme680: chip is %s.\n", info.chip_name);
97 bme680_interface_debug_print("bme680: manufacturer is %s.\n", info.manufacturer_name);
98 bme680_interface_debug_print("bme680: interface is %s.\n", info.interface);
99 bme680_interface_debug_print("bme680: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
100 bme680_interface_debug_print("bme680: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
101 bme680_interface_debug_print("bme680: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
102 bme680_interface_debug_print("bme680: max current is %0.2fmA.\n", info.max_current_ma);
103 bme680_interface_debug_print("bme680: max temperature is %0.1fC.\n", info.temperature_max);
104 bme680_interface_debug_print("bme680: min temperature is %0.1fC.\n", info.temperature_min);
105 }
106
107 /* start register test */
108 bme680_interface_debug_print("bme680: start register test.\n");
109
110 /* bme680_set_interface/bme680_get_interface test */
111 bme680_interface_debug_print("bme680: bme680_set_interface/bme680_get_interface test.\n");
112
113 /* set interface */
115 if (res != 0)
116 {
117 bme680_interface_debug_print("bme680: set interface failed.\n");
118
119 return 1;
120 }
121
122 /* output */
123 bme680_interface_debug_print("bme680: set interface spi.\n");
124
125 /* get interface */
126 res = bme680_get_interface(&gs_handle, &interface_check);
127 if (res != 0)
128 {
129 bme680_interface_debug_print("bme680: get interface failed.\n");
130
131 return 1;
132 }
133 bme680_interface_debug_print("bme680: check interface %s.\n", interface_check == BME680_INTERFACE_SPI ? "ok" : "error");
134
135 /* set interface */
137 if (res != 0)
138 {
139 bme680_interface_debug_print("bme680: set interface failed.\n");
140
141 return 1;
142 }
143
144 /* output */
145 bme680_interface_debug_print("bme680: set interface iic.\n");
146
147 /* get interface */
148 res = bme680_get_interface(&gs_handle, &interface_check);
149 if (res != 0)
150 {
151 bme680_interface_debug_print("bme680: get interface failed.\n");
152
153 return 1;
154 }
155 bme680_interface_debug_print("bme680: check interface %s.\n", interface_check == BME680_INTERFACE_IIC ? "ok" : "error");
156
157 /* bme680_set_addr_pin/bme680_get_addr_pin test */
158 bme680_interface_debug_print("bme680: bme680_set_addr_pin/bme680_get_addr_pin test.\n");
159
160 /* set addr pin low */
162 if (res != 0)
163 {
164 bme680_interface_debug_print("bme680: set addr pin failed.\n");
165
166 return 1;
167 }
168
169 /* output */
170 bme680_interface_debug_print("bme680: set addr pin low.\n");
171
172 /* get addr pin */
173 res = bme680_get_addr_pin(&gs_handle, &addr_pin_check);
174 if (res != 0)
175 {
176 bme680_interface_debug_print("bme680: get addr pin failed.\n");
177
178 return 1;
179 }
180 bme680_interface_debug_print("bme680: check addr pin %s.\n", addr_pin_check == BME680_ADDRESS_ADO_LOW ? "ok" : "error");
181
182 /* set addr pin high */
184 if (res != 0)
185 {
186 bme680_interface_debug_print("bme680: set addr pin failed.\n");
187
188 return 1;
189 }
190
191 /* output */
192 bme680_interface_debug_print("bme680: set addr pin high.\n");
193
194 /* get addr pin */
195 res = bme680_get_addr_pin(&gs_handle, &addr_pin_check);
196 if (res != 0)
197 {
198 bme680_interface_debug_print("bme680: get addr pin failed.\n");
199
200 return 1;
201 }
202 bme680_interface_debug_print("bme680: check addr pin %s.\n", addr_pin_check == BME680_ADDRESS_ADO_HIGH ? "ok" : "error");
203
204 /* set interface */
205 res = bme680_set_interface(&gs_handle, interface);
206 if (res != 0)
207 {
208 bme680_interface_debug_print("bme680: set interface failed.\n");
209
210 return 1;
211 }
212
213 /* set addr pin */
214 res = bme680_set_addr_pin(&gs_handle, addr_pin);
215 if (res != 0)
216 {
217 bme680_interface_debug_print("bme680: set addr pin failed.\n");
218
219 return 1;
220 }
221
222 /* init */
223 res = bme680_init(&gs_handle);
224 if (res != 0)
225 {
226 bme680_interface_debug_print("bme680: init failed.\n");
227
228 return 1;
229 }
230
231 /* bme680_set_temperature_oversampling/bme680_get_temperature_oversampling test */
232 bme680_interface_debug_print("bme680: bme680_set_temperature_oversampling/bme680_get_temperature_oversampling test.\n");
233
234 /* set temperature oversampling skip */
236 if (res != 0)
237 {
238 bme680_interface_debug_print("bme680: set temperature oversampling failed.\n");
239 (void)bme680_deinit(&gs_handle);
240
241 return 1;
242 }
243
244 /* output */
245 bme680_interface_debug_print("bme680: set temperature oversampling skip.\n");
246
247 /* get temperature oversampling */
248 res = bme680_get_temperature_oversampling(&gs_handle, &oversampling);
249 if (res != 0)
250 {
251 bme680_interface_debug_print("bme680: get temperature oversampling failed.\n");
252 (void)bme680_deinit(&gs_handle);
253
254 return 1;
255 }
256 bme680_interface_debug_print("bme680: check temperature oversampling %s.\n", oversampling == BME680_OVERSAMPLING_SKIP ? "ok" : "error");
257
258 /* set temperature oversampling x1 */
260 if (res != 0)
261 {
262 bme680_interface_debug_print("bme680: set temperature oversampling failed.\n");
263 (void)bme680_deinit(&gs_handle);
264
265 return 1;
266 }
267
268 /* output */
269 bme680_interface_debug_print("bme680: set temperature oversampling x1.\n");
270
271 /* get temperature oversampling */
272 res = bme680_get_temperature_oversampling(&gs_handle, &oversampling);
273 if (res != 0)
274 {
275 bme680_interface_debug_print("bme680: get temperature oversampling failed.\n");
276 (void)bme680_deinit(&gs_handle);
277
278 return 1;
279 }
280 bme680_interface_debug_print("bme680: check temperature oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x1 ? "ok" : "error");
281
282 /* set temperature oversampling x2 */
284 if (res != 0)
285 {
286 bme680_interface_debug_print("bme680: set temperature oversampling failed.\n");
287 (void)bme680_deinit(&gs_handle);
288
289 return 1;
290 }
291
292 /* output */
293 bme680_interface_debug_print("bme680: set temperature oversampling x2.\n");
294
295 /* get temperature oversampling */
296 res = bme680_get_temperature_oversampling(&gs_handle, &oversampling);
297 if (res != 0)
298 {
299 bme680_interface_debug_print("bme680: get temperature oversampling failed.\n");
300 (void)bme680_deinit(&gs_handle);
301
302 return 1;
303 }
304 bme680_interface_debug_print("bme680: check temperature oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x2 ? "ok" : "error");
305
306 /* set temperature oversampling x4 */
308 if (res != 0)
309 {
310 bme680_interface_debug_print("bme680: set temperature oversampling failed.\n");
311 (void)bme680_deinit(&gs_handle);
312
313 return 1;
314 }
315
316 /* output */
317 bme680_interface_debug_print("bme680: set temperature oversampling x4.\n");
318
319 /* get temperature oversampling */
320 res = bme680_get_temperature_oversampling(&gs_handle, &oversampling);
321 if (res != 0)
322 {
323 bme680_interface_debug_print("bme680: get temperature oversampling failed.\n");
324 (void)bme680_deinit(&gs_handle);
325
326 return 1;
327 }
328 bme680_interface_debug_print("bme680: check temperature oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x4 ? "ok" : "error");
329
330 /* set temperature oversampling x8 */
332 if (res != 0)
333 {
334 bme680_interface_debug_print("bme680: set temperature oversampling failed.\n");
335 (void)bme680_deinit(&gs_handle);
336
337 return 1;
338 }
339
340 /* output */
341 bme680_interface_debug_print("bme680: set temperature oversampling x8.\n");
342
343 /* get temperature oversampling */
344 res = bme680_get_temperature_oversampling(&gs_handle, &oversampling);
345 if (res != 0)
346 {
347 bme680_interface_debug_print("bme680: get temperature oversampling failed.\n");
348 (void)bme680_deinit(&gs_handle);
349
350 return 1;
351 }
352 bme680_interface_debug_print("bme680: check temperature oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x8 ? "ok" : "error");
353
354 /* set temperature oversampling x16 */
356 if (res != 0)
357 {
358 bme680_interface_debug_print("bme680: set temperature oversampling failed.\n");
359 (void)bme680_deinit(&gs_handle);
360
361 return 1;
362 }
363
364 /* output */
365 bme680_interface_debug_print("bme680: set temperature oversampling x16.\n");
366
367 /* get temperature oversampling */
368 res = bme680_get_temperature_oversampling(&gs_handle, &oversampling);
369 if (res != 0)
370 {
371 bme680_interface_debug_print("bme680: get temperature oversampling failed.\n");
372 (void)bme680_deinit(&gs_handle);
373
374 return 1;
375 }
376 bme680_interface_debug_print("bme680: check temperature oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x16 ? "ok" : "error");
377
378 /* bme680_set_pressure_oversampling/bme680_get_pressure_oversampling test */
379 bme680_interface_debug_print("bme680: bme680_set_pressure_oversampling/bme680_get_pressure_oversampling test.\n");
380
381 /* set pressure oversampling skip */
383 if (res != 0)
384 {
385 bme680_interface_debug_print("bme680: set pressure oversampling failed.\n");
386 (void)bme680_deinit(&gs_handle);
387
388 return 1;
389 }
390
391 /* output */
392 bme680_interface_debug_print("bme680: set pressure oversampling skip.\n");
393
394 /* get pressure oversampling */
395 res = bme680_get_pressure_oversampling(&gs_handle, &oversampling);
396 if (res != 0)
397 {
398 bme680_interface_debug_print("bme680: get pressure oversampling failed.\n");
399 (void)bme680_deinit(&gs_handle);
400
401 return 1;
402 }
403 bme680_interface_debug_print("bme680: check pressure oversampling %s.\n", oversampling == BME680_OVERSAMPLING_SKIP ? "ok" : "error");
404
405 /* set pressure oversampling x1 */
407 if (res != 0)
408 {
409 bme680_interface_debug_print("bme680: set pressure oversampling failed.\n");
410 (void)bme680_deinit(&gs_handle);
411
412 return 1;
413 }
414
415 /* output */
416 bme680_interface_debug_print("bme680: set pressure oversampling x1.\n");
417
418 /* get pressure oversampling */
419 res = bme680_get_pressure_oversampling(&gs_handle, &oversampling);
420 if (res != 0)
421 {
422 bme680_interface_debug_print("bme680: get pressure oversampling failed.\n");
423 (void)bme680_deinit(&gs_handle);
424
425 return 1;
426 }
427 bme680_interface_debug_print("bme680: check pressure oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x1 ? "ok" : "error");
428
429 /* set pressure oversampling x2 */
431 if (res != 0)
432 {
433 bme680_interface_debug_print("bme680: set pressure oversampling failed.\n");
434 (void)bme680_deinit(&gs_handle);
435
436 return 1;
437 }
438
439 /* output */
440 bme680_interface_debug_print("bme680: set pressure oversampling x2.\n");
441
442 /* get pressure oversampling */
443 res = bme680_get_pressure_oversampling(&gs_handle, &oversampling);
444 if (res != 0)
445 {
446 bme680_interface_debug_print("bme680: get pressure oversampling failed.\n");
447 (void)bme680_deinit(&gs_handle);
448
449 return 1;
450 }
451 bme680_interface_debug_print("bme680: check pressure oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x2 ? "ok" : "error");
452
453 /* set pressure oversampling x4 */
455 if (res != 0)
456 {
457 bme680_interface_debug_print("bme680: set pressure oversampling failed.\n");
458 (void)bme680_deinit(&gs_handle);
459
460 return 1;
461 }
462
463 /* output */
464 bme680_interface_debug_print("bme680: set pressure oversampling x4.\n");
465
466 /* get pressure oversampling */
467 res = bme680_get_pressure_oversampling(&gs_handle, &oversampling);
468 if (res != 0)
469 {
470 bme680_interface_debug_print("bme680: get pressure oversampling failed.\n");
471 (void)bme680_deinit(&gs_handle);
472
473 return 1;
474 }
475 bme680_interface_debug_print("bme680: check pressure oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x4 ? "ok" : "error");
476
477 /* set pressure oversampling x8 */
479 if (res != 0)
480 {
481 bme680_interface_debug_print("bme680: set pressure oversampling failed.\n");
482 (void)bme680_deinit(&gs_handle);
483
484 return 1;
485 }
486
487 /* output */
488 bme680_interface_debug_print("bme680: set pressure oversampling x8.\n");
489
490 /* get pressure oversampling */
491 res = bme680_get_pressure_oversampling(&gs_handle, &oversampling);
492 if (res != 0)
493 {
494 bme680_interface_debug_print("bme680: get pressure oversampling failed.\n");
495 (void)bme680_deinit(&gs_handle);
496
497 return 1;
498 }
499 bme680_interface_debug_print("bme680: check pressure oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x8 ? "ok" : "error");
500
501 /* set pressure oversampling x16 */
503 if (res != 0)
504 {
505 bme680_interface_debug_print("bme680: set pressure oversampling failed.\n");
506 (void)bme680_deinit(&gs_handle);
507
508 return 1;
509 }
510
511 /* output */
512 bme680_interface_debug_print("bme680: set pressure oversampling x16.\n");
513
514 /* get pressure oversampling */
515 res = bme680_get_pressure_oversampling(&gs_handle, &oversampling);
516 if (res != 0)
517 {
518 bme680_interface_debug_print("bme680: get pressure oversampling failed.\n");
519 (void)bme680_deinit(&gs_handle);
520
521 return 1;
522 }
523 bme680_interface_debug_print("bme680: check pressure oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x16 ? "ok" : "error");
524
525 /* bme680_set_humidity_oversampling/bme680_get_humidity_oversampling test */
526 bme680_interface_debug_print("bme680: bme680_set_humidity_oversampling/bme680_get_humidity_oversampling test.\n");
527
528 /* set humidity oversampling skip */
530 if (res != 0)
531 {
532 bme680_interface_debug_print("bme680: set humidity oversampling failed.\n");
533 (void)bme680_deinit(&gs_handle);
534
535 return 1;
536 }
537
538 /* output */
539 bme680_interface_debug_print("bme680: set humidity oversampling skip.\n");
540
541 /* get humidity oversampling */
542 res = bme680_get_humidity_oversampling(&gs_handle, &oversampling);
543 if (res != 0)
544 {
545 bme680_interface_debug_print("bme680: get humidity oversampling failed.\n");
546 (void)bme680_deinit(&gs_handle);
547
548 return 1;
549 }
550 bme680_interface_debug_print("bme680: check humidity oversampling %s.\n", oversampling == BME680_OVERSAMPLING_SKIP ? "ok" : "error");
551
552 /* set humidity oversampling x1 */
554 if (res != 0)
555 {
556 bme680_interface_debug_print("bme680: set humidity oversampling failed.\n");
557 (void)bme680_deinit(&gs_handle);
558
559 return 1;
560 }
561
562 /* output */
563 bme680_interface_debug_print("bme680: set humidity oversampling x1.\n");
564
565 /* get humidity oversampling */
566 res = bme680_get_humidity_oversampling(&gs_handle, &oversampling);
567 if (res != 0)
568 {
569 bme680_interface_debug_print("bme680: get humidity oversampling failed.\n");
570 (void)bme680_deinit(&gs_handle);
571
572 return 1;
573 }
574 bme680_interface_debug_print("bme680: check humidity oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x1 ? "ok" : "error");
575
576 /* set humidity oversampling x2 */
578 if (res != 0)
579 {
580 bme680_interface_debug_print("bme680: set humidity oversampling failed.\n");
581 (void)bme680_deinit(&gs_handle);
582
583 return 1;
584 }
585
586 /* output */
587 bme680_interface_debug_print("bme680: set humidity oversampling x2.\n");
588
589 /* get humidity oversampling */
590 res = bme680_get_humidity_oversampling(&gs_handle, &oversampling);
591 if (res != 0)
592 {
593 bme680_interface_debug_print("bme680: get humidity oversampling failed.\n");
594 (void)bme680_deinit(&gs_handle);
595
596 return 1;
597 }
598 bme680_interface_debug_print("bme680: check humidity oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x2 ? "ok" : "error");
599
600 /* set humidity oversampling x4 */
602 if (res != 0)
603 {
604 bme680_interface_debug_print("bme680: set humidity oversampling failed.\n");
605 (void)bme680_deinit(&gs_handle);
606
607 return 1;
608 }
609
610 /* output */
611 bme680_interface_debug_print("bme680: set humidity oversampling x4.\n");
612
613 /* get humidity oversampling */
614 res = bme680_get_humidity_oversampling(&gs_handle, &oversampling);
615 if (res != 0)
616 {
617 bme680_interface_debug_print("bme680: get humidity oversampling failed.\n");
618 (void)bme680_deinit(&gs_handle);
619
620 return 1;
621 }
622 bme680_interface_debug_print("bme680: check humidity oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x4 ? "ok" : "error");
623
624 /* set humidity oversampling x8 */
626 if (res != 0)
627 {
628 bme680_interface_debug_print("bme680: set humidity oversampling failed.\n");
629 (void)bme680_deinit(&gs_handle);
630
631 return 1;
632 }
633
634 /* output */
635 bme680_interface_debug_print("bme680: set humidity oversampling x8.\n");
636
637 /* get humidity oversampling */
638 res = bme680_get_humidity_oversampling(&gs_handle, &oversampling);
639 if (res != 0)
640 {
641 bme680_interface_debug_print("bme680: get humidity oversampling failed.\n");
642 (void)bme680_deinit(&gs_handle);
643
644 return 1;
645 }
646 bme680_interface_debug_print("bme680: check humidity oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x8 ? "ok" : "error");
647
648 /* set humidity oversampling x16 */
650 if (res != 0)
651 {
652 bme680_interface_debug_print("bme680: set humidity oversampling failed.\n");
653 (void)bme680_deinit(&gs_handle);
654
655 return 1;
656 }
657
658 /* output */
659 bme680_interface_debug_print("bme680: set humidity oversampling x16.\n");
660
661 /* get humidity oversampling */
662 res = bme680_get_humidity_oversampling(&gs_handle, &oversampling);
663 if (res != 0)
664 {
665 bme680_interface_debug_print("bme680: get humidity oversampling failed.\n");
666 (void)bme680_deinit(&gs_handle);
667
668 return 1;
669 }
670 bme680_interface_debug_print("bme680: check humidity oversampling %s.\n", oversampling == BME680_OVERSAMPLING_x16 ? "ok" : "error");
671
672 /* bme680_set_mode/bme680_get_mode test */
673 bme680_interface_debug_print("bme680: bme680_set_mode/bme680_get_mode test.\n");
674
675 /* set mode forced */
676 res = bme680_set_mode(&gs_handle, BME680_MODE_FORCED);
677 if (res != 0)
678 {
679 bme680_interface_debug_print("bme680: set mode failed.\n");
680 (void)bme680_deinit(&gs_handle);
681
682 return 1;
683 }
684
685 /* output */
686 bme680_interface_debug_print("bme680: set mode forced.\n");
687
688 res = bme680_get_mode(&gs_handle, &mode);
689 if (res != 0)
690 {
691 bme680_interface_debug_print("bme680: get mode failed.\n");
692 (void)bme680_deinit(&gs_handle);
693
694 return 1;
695 }
696 bme680_interface_debug_print("bme680: check mode %s.\n", mode == BME680_MODE_FORCED ? "ok" : "error");
697
698 /* set mode sleep */
699 res = bme680_set_mode(&gs_handle, BME680_MODE_SLEEP);
700 if (res != 0)
701 {
702 bme680_interface_debug_print("bme680: set mode failed.\n");
703 (void)bme680_deinit(&gs_handle);
704
705 return 1;
706 }
707
708 /* output */
709 bme680_interface_debug_print("bme680: set mode sleep.\n");
710
711 res = bme680_get_mode(&gs_handle, &mode);
712 if (res != 0)
713 {
714 bme680_interface_debug_print("bme680: get mode failed.\n");
715 (void)bme680_deinit(&gs_handle);
716
717 return 1;
718 }
719 bme680_interface_debug_print("bme680: check mode %s.\n", mode == BME680_MODE_SLEEP ? "ok" : "error");
720
721 /* bme680_set_filter/bme680_get_filter test */
722 bme680_interface_debug_print("bme680: bme680_set_filter/bme680_get_filter test.\n");
723
724 /* set filter off */
725 res = bme680_set_filter(&gs_handle, BME680_FILTER_OFF);
726 if (res != 0)
727 {
728 bme680_interface_debug_print("bme680: set filter failed.\n");
729 (void)bme680_deinit(&gs_handle);
730
731 return 1;
732 }
733
734 /* output */
735 bme680_interface_debug_print("bme680: set filter off.\n");
736
737 /* get filter */
738 res = bme680_get_filter(&gs_handle, &filter);
739 if (res != 0)
740 {
741 bme680_interface_debug_print("bme680: get filter failed.\n");
742 (void)bme680_deinit(&gs_handle);
743
744 return 1;
745 }
746 bme680_interface_debug_print("bme680: check filter %s.\n", filter == BME680_FILTER_OFF ? "ok" : "error");
747
748 /* set filter coeff 1 */
749 res = bme680_set_filter(&gs_handle, BME680_FILTER_COEFF_1);
750 if (res != 0)
751 {
752 bme680_interface_debug_print("bme680: set filter failed.\n");
753 (void)bme680_deinit(&gs_handle);
754
755 return 1;
756 }
757
758 /* output */
759 bme680_interface_debug_print("bme680: set filter coeff 1.\n");
760
761 /* get filter */
762 res = bme680_get_filter(&gs_handle, &filter);
763 if (res != 0)
764 {
765 bme680_interface_debug_print("bme680: get filter failed.\n");
766 (void)bme680_deinit(&gs_handle);
767
768 return 1;
769 }
770 bme680_interface_debug_print("bme680: check filter %s.\n", filter == BME680_FILTER_COEFF_1 ? "ok" : "error");
771
772 /* set filter coeff 3 */
773 res = bme680_set_filter(&gs_handle, BME680_FILTER_COEFF_3);
774 if (res != 0)
775 {
776 bme680_interface_debug_print("bme680: set filter failed.\n");
777 (void)bme680_deinit(&gs_handle);
778
779 return 1;
780 }
781
782 /* output */
783 bme680_interface_debug_print("bme680: set filter coeff 3.\n");
784
785 /* get filter */
786 res = bme680_get_filter(&gs_handle, &filter);
787 if (res != 0)
788 {
789 bme680_interface_debug_print("bme680: get filter failed.\n");
790 (void)bme680_deinit(&gs_handle);
791
792 return 1;
793 }
794 bme680_interface_debug_print("bme680: check filter %s.\n", filter == BME680_FILTER_COEFF_3 ? "ok" : "error");
795
796 /* set filter coeff 7 */
797 res = bme680_set_filter(&gs_handle, BME680_FILTER_COEFF_7);
798 if (res != 0)
799 {
800 bme680_interface_debug_print("bme680: set filter failed.\n");
801 (void)bme680_deinit(&gs_handle);
802
803 return 1;
804 }
805
806 /* output */
807 bme680_interface_debug_print("bme680: set filter coeff 7.\n");
808
809 /* get filter */
810 res = bme680_get_filter(&gs_handle, &filter);
811 if (res != 0)
812 {
813 bme680_interface_debug_print("bme680: get filter failed.\n");
814 (void)bme680_deinit(&gs_handle);
815
816 return 1;
817 }
818 bme680_interface_debug_print("bme680: check filter %s.\n", filter == BME680_FILTER_COEFF_7 ? "ok" : "error");
819
820 /* set filter coeff 15 */
821 res = bme680_set_filter(&gs_handle, BME680_FILTER_COEFF_15);
822 if (res != 0)
823 {
824 bme680_interface_debug_print("bme680: set filter failed.\n");
825 (void)bme680_deinit(&gs_handle);
826
827 return 1;
828 }
829
830 /* output */
831 bme680_interface_debug_print("bme680: set filter coeff 15.\n");
832
833 /* get filter */
834 res = bme680_get_filter(&gs_handle, &filter);
835 if (res != 0)
836 {
837 bme680_interface_debug_print("bme680: get filter failed.\n");
838 (void)bme680_deinit(&gs_handle);
839
840 return 1;
841 }
842 bme680_interface_debug_print("bme680: check filter %s.\n", filter == BME680_FILTER_COEFF_15 ? "ok" : "error");
843
844 /* set filter coeff 31 */
845 res = bme680_set_filter(&gs_handle, BME680_FILTER_COEFF_31);
846 if (res != 0)
847 {
848 bme680_interface_debug_print("bme680: set filter failed.\n");
849 (void)bme680_deinit(&gs_handle);
850
851 return 1;
852 }
853
854 /* output */
855 bme680_interface_debug_print("bme680: set filter coeff 31.\n");
856
857 /* get filter */
858 res = bme680_get_filter(&gs_handle, &filter);
859 if (res != 0)
860 {
861 bme680_interface_debug_print("bme680: get filter failed.\n");
862 (void)bme680_deinit(&gs_handle);
863
864 return 1;
865 }
866 bme680_interface_debug_print("bme680: check filter %s.\n", filter == BME680_FILTER_COEFF_31 ? "ok" : "error");
867
868 /* set filter coeff 63 */
869 res = bme680_set_filter(&gs_handle, BME680_FILTER_COEFF_63);
870 if (res != 0)
871 {
872 bme680_interface_debug_print("bme680: set filter failed.\n");
873 (void)bme680_deinit(&gs_handle);
874
875 return 1;
876 }
877
878 /* output */
879 bme680_interface_debug_print("bme680: set filter coeff 63.\n");
880
881 /* get filter */
882 res = bme680_get_filter(&gs_handle, &filter);
883 if (res != 0)
884 {
885 bme680_interface_debug_print("bme680: get filter failed.\n");
886 (void)bme680_deinit(&gs_handle);
887
888 return 1;
889 }
890 bme680_interface_debug_print("bme680: check filter %s.\n", filter == BME680_FILTER_COEFF_63 ? "ok" : "error");
891
892 /* set filter coeff 127 */
894 if (res != 0)
895 {
896 bme680_interface_debug_print("bme680: set filter failed.\n");
897 (void)bme680_deinit(&gs_handle);
898
899 return 1;
900 }
901
902 /* output */
903 bme680_interface_debug_print("bme680: set filter coeff 127.\n");
904
905 /* get filter */
906 res = bme680_get_filter(&gs_handle, &filter);
907 if (res != 0)
908 {
909 bme680_interface_debug_print("bme680: get filter failed.\n");
910 (void)bme680_deinit(&gs_handle);
911
912 return 1;
913 }
914 bme680_interface_debug_print("bme680: check filter %s.\n", filter == BME680_FILTER_COEFF_127 ? "ok" : "error");
915
916 /* if iic interface */
917 if (interface == BME680_INTERFACE_IIC)
918 {
919 /* bme680_set_spi_wire/bme680_get_spi_wire test */
920 bme680_interface_debug_print("bme680: bme680_set_spi_wire/bme680_get_spi_wire test.\n");
921
922 /* set spi wire3 */
923 res = bme680_set_spi_wire(&gs_handle, BME680_SPI_WIRE_3);
924 if (res != 0)
925 {
926 bme680_interface_debug_print("bme680: set spi wire failed.\n");
927 (void)bme680_deinit(&gs_handle);
928
929 return 1;
930 }
931
932 /* output */
933 bme680_interface_debug_print("bme680: set spi wire 3.\n");
934
935 /* get spi wire */
936 res = bme680_get_spi_wire(&gs_handle, &spi);
937 if (res != 0)
938 {
939 bme680_interface_debug_print("bme680: get spi wire failed.\n");
940 (void)bme680_deinit(&gs_handle);
941
942 return 1;
943 }
944 bme680_interface_debug_print("bme680: check spi wire %s.\n", spi == BME680_SPI_WIRE_3 ? "ok" : "error");
945
946 /* set spi wire4 */
947 res = bme680_set_spi_wire(&gs_handle, BME680_SPI_WIRE_4);
948 if (res != 0)
949 {
950 bme680_interface_debug_print("bme680: set spi wire failed.\n");
951 (void)bme680_deinit(&gs_handle);
952
953 return 1;
954 }
955
956 /* output */
957 bme680_interface_debug_print("bme680: set spi wire 4.\n");
958
959 /* get spi wire */
960 res = bme680_get_spi_wire(&gs_handle, &spi);
961 if (res != 0)
962 {
963 bme680_interface_debug_print("bme680: get spi wire failed.\n");
964 (void)bme680_deinit(&gs_handle);
965
966 return 1;
967 }
968 bme680_interface_debug_print("bme680: check spi wire %s.\n", spi == BME680_SPI_WIRE_4 ? "ok" : "error");
969 }
970
971 /* bme680_set_spi_wire_3_data_interrupt/bme680_get_spi_wire_3_data_interrupt test */
972 bme680_interface_debug_print("bme680: bme680_set_spi_wire_3_data_interrupt/bme680_get_spi_wire_3_data_interrupt test.\n");
973
974 /* enable spi wire 3 data interrupt */
976 if (res != 0)
977 {
978 bme680_interface_debug_print("bme680: set spi wire 3 data interrupt failed.\n");
979 (void)bme680_deinit(&gs_handle);
980
981 return 1;
982 }
983 bme680_interface_debug_print("bme680: enable spi wire 3 data interrupt.\n");
984 res = bme680_get_spi_wire_3_data_interrupt(&gs_handle, &enable);
985 if (res != 0)
986 {
987 bme680_interface_debug_print("bme680: get spi wire 3 data interrupt failed.\n");
988 (void)bme680_deinit(&gs_handle);
989
990 return 1;
991 }
992 bme680_interface_debug_print("bme680: check spi wire 3 data interrupt %s.\n", enable == BME680_BOOL_TRUE ? "ok" : "error");
993
994 /* disable spi wire 3 data interrupt */
996 if (res != 0)
997 {
998 bme680_interface_debug_print("bme680: set spi wire 3 data interrupt failed.\n");
999 (void)bme680_deinit(&gs_handle);
1000
1001 return 1;
1002 }
1003 bme680_interface_debug_print("bme680: disable spi wire 3 data interrupt.\n");
1004 res = bme680_get_spi_wire_3_data_interrupt(&gs_handle, &enable);
1005 if (res != 0)
1006 {
1007 bme680_interface_debug_print("bme680: get spi wire 3 data interrupt failed.\n");
1008 (void)bme680_deinit(&gs_handle);
1009
1010 return 1;
1011 }
1012 bme680_interface_debug_print("bme680: check spi wire 3 data interrupt %s.\n", enable == BME680_BOOL_FALSE ? "ok" : "error");
1013
1014 /* bme680_get_new_data_status test */
1015 bme680_interface_debug_print("bme680: bme680_get_new_data_status test.\n");
1016
1017 /* get new data status */
1018 res = bme680_get_new_data_status(&gs_handle, &enable);
1019 if (res != 0)
1020 {
1021 bme680_interface_debug_print("bme680: get new data status failed.\n");
1022 (void)bme680_deinit(&gs_handle);
1023
1024 return 1;
1025 }
1026 bme680_interface_debug_print("bme680: new data status is %s.\n", enable == BME680_BOOL_TRUE ? "true" : "false");
1027
1028 /* bme680_get_gas_measuring_status test */
1029 bme680_interface_debug_print("bme680: bme680_get_gas_measuring_status test.\n");
1030
1031 /* get gas measuring status */
1032 res = bme680_get_gas_measuring_status(&gs_handle, &enable);
1033 if (res != 0)
1034 {
1035 bme680_interface_debug_print("bme680: get gas measuring status failed.\n");
1036 (void)bme680_deinit(&gs_handle);
1037
1038 return 1;
1039 }
1040 bme680_interface_debug_print("bme680: gas measuring status is %s.\n", enable == BME680_BOOL_TRUE ? "true" : "false");
1041
1042 /* bme680_get_measuring_status test */
1043 bme680_interface_debug_print("bme680: bme680_get_measuring_status test.\n");
1044
1045 /* get measuring status */
1046 res = bme680_get_measuring_status(&gs_handle, &enable);
1047 if (res != 0)
1048 {
1049 bme680_interface_debug_print("bme680: get measuring status failed.\n");
1050 (void)bme680_deinit(&gs_handle);
1051
1052 return 1;
1053 }
1054 bme680_interface_debug_print("bme680: get measuring status is %s.\n", enable == BME680_BOOL_TRUE ? "true" : "false");
1055
1056 /* bme680_get_gas_measuring_index test */
1057 bme680_interface_debug_print("bme680: bme680_get_gas_measuring_index test.\n");
1058
1059 /* get gas measuring index */
1060 res = bme680_get_gas_measuring_index(&gs_handle, &index);
1061 if (res != 0)
1062 {
1063 bme680_interface_debug_print("bme680: get gas measuring index failed.\n");
1064 (void)bme680_deinit(&gs_handle);
1065
1066 return 1;
1067 }
1068 bme680_interface_debug_print("bme680: gas measuring index is 0x%02X.\n", index);
1069
1070 /* bme680_get_gas_valid_status test */
1071 bme680_interface_debug_print("bme680: bme680_get_gas_valid_status test.\n");
1072
1073 /* get gas valid status */
1074 res = bme680_get_gas_valid_status(&gs_handle, &enable);
1075 if (res != 0)
1076 {
1077 bme680_interface_debug_print("bme680: get gas valid status failed.\n");
1078 (void)bme680_deinit(&gs_handle);
1079
1080 return 1;
1081 }
1082 bme680_interface_debug_print("bme680: gas valid status is %s.\n", enable == BME680_BOOL_TRUE ? "true" : "false");
1083
1084 /* bme680_get_heater_stability_status test */
1085 bme680_interface_debug_print("bme680: bme680_get_heater_stability_status test.\n");
1086
1087 /* get heater stability status */
1088 res = bme680_get_heater_stability_status(&gs_handle, &enable);
1089 if (res != 0)
1090 {
1091 bme680_interface_debug_print("bme680: get heater stability status failed.\n");
1092 (void)bme680_deinit(&gs_handle);
1093
1094 return 1;
1095 }
1096 bme680_interface_debug_print("bme680: heater stability status is %s.\n", enable == BME680_BOOL_TRUE ? "true" : "false");
1097
1098 /* bme680_set_heat_off/bme680_get_heat_off test */
1099 bme680_interface_debug_print("bme680: bme680_set_heat_off/bme680_get_heat_off test.\n");
1100
1101 /* disable heat off */
1102 res = bme680_set_heat_off(&gs_handle, BME680_BOOL_FALSE);
1103 if (res != 0)
1104 {
1105 bme680_interface_debug_print("bme680: set heat off failed.\n");
1106 (void)bme680_deinit(&gs_handle);
1107
1108 return 1;
1109 }
1110 bme680_interface_debug_print("bme680: disable heat off.\n");
1111 res = bme680_get_heat_off(&gs_handle, &enable);
1112 if (res != 0)
1113 {
1114 bme680_interface_debug_print("bme680: get heat off failed.\n");
1115 (void)bme680_deinit(&gs_handle);
1116
1117 return 1;
1118 }
1119 bme680_interface_debug_print("bme680: check heat off %s.\n", enable == BME680_BOOL_FALSE ? "ok" : "error");
1120
1121 /* enable heat off */
1122 res = bme680_set_heat_off(&gs_handle, BME680_BOOL_TRUE);
1123 if (res != 0)
1124 {
1125 bme680_interface_debug_print("bme680: set heat off failed.\n");
1126 (void)bme680_deinit(&gs_handle);
1127
1128 return 1;
1129 }
1130 bme680_interface_debug_print("bme680: enable heat off.\n");
1131 res = bme680_get_heat_off(&gs_handle, &enable);
1132 if (res != 0)
1133 {
1134 bme680_interface_debug_print("bme680: get heat off failed.\n");
1135 (void)bme680_deinit(&gs_handle);
1136
1137 return 1;
1138 }
1139 bme680_interface_debug_print("bme680: check heat off %s.\n", enable == BME680_BOOL_TRUE ? "ok" : "error");
1140
1141 /* bme680_set_run_gas/bme680_get_run_gas test */
1142 bme680_interface_debug_print("bme680: bme680_set_run_gas/bme680_get_run_gas test.\n");
1143
1144 /* enable run gas */
1145 res = bme680_set_run_gas(&gs_handle, BME680_BOOL_TRUE);
1146 if (res != 0)
1147 {
1148 bme680_interface_debug_print("bme680: set run gas failed.\n");
1149 (void)bme680_deinit(&gs_handle);
1150
1151 return 1;
1152 }
1153 bme680_interface_debug_print("bme680: enable run gas.\n");
1154 res = bme680_get_run_gas(&gs_handle, &enable);
1155 if (res != 0)
1156 {
1157 bme680_interface_debug_print("bme680: get run gas failed.\n");
1158 (void)bme680_deinit(&gs_handle);
1159
1160 return 1;
1161 }
1162 bme680_interface_debug_print("bme680: check run gas %s.\n", enable == BME680_BOOL_TRUE ? "ok" : "error");
1163
1164 /* disable run gas */
1165 res = bme680_set_run_gas(&gs_handle, BME680_BOOL_FALSE);
1166 if (res != 0)
1167 {
1168 bme680_interface_debug_print("bme680: set run gas failed.\n");
1169 (void)bme680_deinit(&gs_handle);
1170
1171 return 1;
1172 }
1173 bme680_interface_debug_print("bme680: disable run gas.\n");
1174 res = bme680_get_run_gas(&gs_handle, &enable);
1175 if (res != 0)
1176 {
1177 bme680_interface_debug_print("bme680: get run gas failed.\n");
1178 (void)bme680_deinit(&gs_handle);
1179
1180 return 1;
1181 }
1182 bme680_interface_debug_print("bme680: check run gas %s.\n", enable == BME680_BOOL_FALSE ? "ok" : "error");
1183
1184 /* bme680_set_convert_index/bme680_get_convert_index test */
1185 bme680_interface_debug_print("bme680: bme680_set_convert_index/bme680_get_convert_index test.\n");
1186
1187 for (i = 0; i < 10; i++)
1188 {
1189 /* set convert index */
1190 res = bme680_set_convert_index(&gs_handle, i);
1191 if (res != 0)
1192 {
1193 bme680_interface_debug_print("bme680: set convert index failed.\n");
1194 (void)bme680_deinit(&gs_handle);
1195
1196 return 1;
1197 }
1198 bme680_interface_debug_print("bme680: set convert index %d.\n", i);
1199 res = bme680_get_convert_index(&gs_handle, &index_check);
1200 if (res != 0)
1201 {
1202 bme680_interface_debug_print("bme680: get convert index failed.\n");
1203 (void)bme680_deinit(&gs_handle);
1204
1205 return 1;
1206 }
1207 bme680_interface_debug_print("bme680: check convert index %s.\n", i == index_check ? "ok" : "error");
1208 }
1209
1210 /* bme680_set_idac_heat/bme680_get_idac_heat test */
1211 bme680_interface_debug_print("bme680: bme680_set_idac_heat/bme680_get_idac_heat test.\n");
1212
1213 for (i = 0; i < 10; i++)
1214 {
1215 reg = rand() % 0xFFU;
1216 res = bme680_set_idac_heat(&gs_handle, i, reg);
1217 if (res != 0)
1218 {
1219 bme680_interface_debug_print("bme680: set idac heat failed.\n");
1220 (void)bme680_deinit(&gs_handle);
1221
1222 return 1;
1223 }
1224 bme680_interface_debug_print("bme680: set index %d idac heat 0x%02X.\n", i, reg);
1225 res = bme680_get_idac_heat(&gs_handle, i, &reg_check);
1226 if (res != 0)
1227 {
1228 bme680_interface_debug_print("bme680: get idac heat failed.\n");
1229 (void)bme680_deinit(&gs_handle);
1230
1231 return 1;
1232 }
1233 bme680_interface_debug_print("bme680: check idac heat %s.\n", reg == reg_check ? "ok" : "error");
1234 }
1235
1236 /* bme680_set_resistance_heat/bme680_get_resistance_heat test */
1237 bme680_interface_debug_print("bme680: bme680_set_resistance_heat/bme680_get_resistance_heat test.\n");
1238
1239 for (i = 0; i < 10; i++)
1240 {
1241 reg = rand() % 0xFFU;
1242 res = bme680_set_resistance_heat(&gs_handle, i, reg);
1243 if (res != 0)
1244 {
1245 bme680_interface_debug_print("bme680: set resistance heat failed.\n");
1246 (void)bme680_deinit(&gs_handle);
1247
1248 return 1;
1249 }
1250 bme680_interface_debug_print("bme680: set index %d resistance heat 0x%02X.\n", i, reg);
1251 res = bme680_get_resistance_heat(&gs_handle, i, &reg_check);
1252 if (res != 0)
1253 {
1254 bme680_interface_debug_print("bme680: get resistance heat failed.\n");
1255 (void)bme680_deinit(&gs_handle);
1256
1257 return 1;
1258 }
1259 bme680_interface_debug_print("bme680: check resistance heat %s.\n", reg == reg_check ? "ok" : "error");
1260 }
1261
1262 /* bme680_set_gas_wait/bme680_get_gas_wait test */
1263 bme680_interface_debug_print("bme680: bme680_set_gas_wait/bme680_get_gas_wait test.\n");
1264
1265 for (i = 0; i < 10; i++)
1266 {
1267 reg = rand() % 0xFFU;
1268 res = bme680_set_gas_wait(&gs_handle, i, reg);
1269 if (res != 0)
1270 {
1271 bme680_interface_debug_print("bme680: set gas wait failed.\n");
1272 (void)bme680_deinit(&gs_handle);
1273
1274 return 1;
1275 }
1276 bme680_interface_debug_print("bme680: set index %d gas wait 0x%02X.\n", i, reg);
1277 res = bme680_get_gas_wait(&gs_handle, i, &reg_check);
1278 if (res != 0)
1279 {
1280 bme680_interface_debug_print("bme680: get gas wait failed.\n");
1281 (void)bme680_deinit(&gs_handle);
1282
1283 return 1;
1284 }
1285 bme680_interface_debug_print("bme680: check gas wait %s.\n", reg == reg_check ? "ok" : "error");
1286 }
1287
1288 /* bme680_resistance_heat_convert_to_register test */
1289 bme680_interface_debug_print("bme680: bme680_resistance_heat_convert_to_register test.\n");
1290
1291 degree_celsius = (float)(rand() % 30000) / 100;
1292 res = bme680_resistance_heat_convert_to_register(&gs_handle, degree_celsius, &reg);
1293 if (res != 0)
1294 {
1295 bme680_interface_debug_print("bme680: resistance heat convert to register failed.\n");
1296 (void)bme680_deinit(&gs_handle);
1297
1298 return 1;
1299 }
1300 bme680_interface_debug_print("bme680: %0.2fC convert to register 0x%02X.\n", degree_celsius, reg);
1301
1302 /* bme680_gas_wait_convert_to_register test */
1303 bme680_interface_debug_print("bme680: bme680_gas_wait_convert_to_register test.\n");
1304
1305 ms = rand() % 100 + 50;
1306 res = bme680_gas_wait_convert_to_register(&gs_handle, ms, &reg);
1307 if (res != 0)
1308 {
1309 bme680_interface_debug_print("bme680: gas wait convert to register failed.\n");
1310 (void)bme680_deinit(&gs_handle);
1311
1312 return 1;
1313 }
1314 bme680_interface_debug_print("bme680: %dms convert to register 0x%02X.\n", ms, reg);
1315
1316 /* bme680_idac_heat_convert_to_register/bme680_idac_heat_convert_to_data test */
1317 bme680_interface_debug_print("bme680: bme680_idac_heat_convert_to_register/bme680_idac_heat_convert_to_data test.\n");
1318
1319 ma = (float)(rand() % 100) / 10.0f;
1320 bme680_interface_debug_print("bme680: idac heat ma before is %0.2fmA.\n", ma);
1321 res = bme680_idac_heat_convert_to_register(&gs_handle, ma, &reg);
1322 if (res != 0)
1323 {
1324 bme680_interface_debug_print("bme680: idac heat convert to register failed.\n");
1325 (void)bme680_deinit(&gs_handle);
1326
1327 return 1;
1328 }
1329 bme680_interface_debug_print("bme680: idac heat reg is 0x%02X.\n", reg);
1330 res = bme680_idac_heat_convert_to_data(&gs_handle, reg, &ma_check);
1331 if (res != 0)
1332 {
1333 bme680_interface_debug_print("bme680: idac heat convert to data failed.\n");
1334 (void)bme680_deinit(&gs_handle);
1335
1336 return 1;
1337 }
1338 bme680_interface_debug_print("bme680: idac heat ma after is %0.2fmA.\n", ma_check);
1339
1340 /* bme680_soft_reset test */
1341 bme680_interface_debug_print("bme680: bme680_soft_reset test.\n");
1342
1343 /* soft reset */
1344 res = bme680_soft_reset(&gs_handle);
1345 if (res != 0)
1346 {
1347 bme680_interface_debug_print("bme680: soft reset failed.\n");
1348 (void)bme680_deinit(&gs_handle);
1349
1350 return 1;
1351 }
1352 bme680_interface_debug_print("bme680: check soft reset %s.\n", res == 0 ? "ok" : "error");
1353
1354 /* finish register test */
1355 bme680_interface_debug_print("bme680: finish register test.\n");
1356 (void)bme680_deinit(&gs_handle);
1357
1358 return 0;
1359}
driver bme680 register test header file
uint8_t bme680_set_run_gas(bme680_handle_t *handle, bme680_bool_t enable)
enable or disable run gas
uint8_t bme680_gas_wait_convert_to_register(bme680_handle_t *handle, uint16_t ms, uint8_t *reg)
convert the gas wait to the register raw data
uint8_t bme680_set_filter(bme680_handle_t *handle, bme680_filter_t filter)
set filter
uint8_t bme680_get_measuring_status(bme680_handle_t *handle, bme680_bool_t *enable)
get measuring status
uint8_t bme680_deinit(bme680_handle_t *handle)
close the chip
uint8_t bme680_get_mode(bme680_handle_t *handle, bme680_mode_t *mode)
get mode
uint8_t bme680_get_gas_measuring_index(bme680_handle_t *handle, uint8_t *index)
get gas measuring index
bme680_filter_t
bme680 filter enumeration definition
uint8_t bme680_set_temperature_oversampling(bme680_handle_t *handle, bme680_oversampling_t oversampling)
set temperature oversampling
uint8_t bme680_set_heat_off(bme680_handle_t *handle, bme680_bool_t enable)
enable or disable heat off
bme680_mode_t
bme680 mode enumeration definition
uint8_t bme680_set_interface(bme680_handle_t *handle, bme680_interface_t interface)
set the interface
uint8_t bme680_set_idac_heat(bme680_handle_t *handle, uint8_t index, uint8_t reg)
set idac heat
uint8_t bme680_set_convert_index(bme680_handle_t *handle, uint8_t index)
set convert index
uint8_t bme680_get_spi_wire_3_data_interrupt(bme680_handle_t *handle, bme680_bool_t *enable)
get spi wire3 data interrupt status
uint8_t bme680_set_spi_wire_3_data_interrupt(bme680_handle_t *handle, bme680_bool_t enable)
enable or disable spi wire3 data interrupt
uint8_t bme680_get_temperature_oversampling(bme680_handle_t *handle, bme680_oversampling_t *oversampling)
get temperature oversampling
uint8_t bme680_get_resistance_heat(bme680_handle_t *handle, uint8_t index, uint8_t *reg)
get resistance heat
uint8_t bme680_get_heat_off(bme680_handle_t *handle, bme680_bool_t *enable)
get heat off status
uint8_t bme680_get_interface(bme680_handle_t *handle, bme680_interface_t *interface)
get the interface
bme680_interface_t
bme680 interface enumeration definition
uint8_t bme680_set_resistance_heat(bme680_handle_t *handle, uint8_t index, uint8_t reg)
set resistance heat
uint8_t bme680_set_gas_wait(bme680_handle_t *handle, uint8_t index, uint8_t reg)
set gas wait
uint8_t bme680_info(bme680_info_t *info)
get chip's information
struct bme680_info_s bme680_info_t
bme680 information structure definition
uint8_t bme680_get_idac_heat(bme680_handle_t *handle, uint8_t index, uint8_t *reg)
get idac heat
uint8_t bme680_get_filter(bme680_handle_t *handle, bme680_filter_t *filter)
get filter
uint8_t bme680_resistance_heat_convert_to_register(bme680_handle_t *handle, float degree_celsius, uint8_t *reg)
convert the resistance heat to the register raw data
uint8_t bme680_init(bme680_handle_t *handle)
initialize the chip
uint8_t bme680_get_spi_wire(bme680_handle_t *handle, bme680_spi_wire_t *spi)
get spi wire
bme680_address_t
bme680 address enumeration definition
uint8_t bme680_soft_reset(bme680_handle_t *handle)
soft reset
bme680_oversampling_t
bme680 oversampling enumeration definition
uint8_t bme680_get_humidity_oversampling(bme680_handle_t *handle, bme680_oversampling_t *oversampling)
get humidity oversampling
uint8_t bme680_get_new_data_status(bme680_handle_t *handle, bme680_bool_t *enable)
get new data status
uint8_t bme680_idac_heat_convert_to_register(bme680_handle_t *handle, float ma, uint8_t *reg)
convert the idac heat to the register raw data
uint8_t bme680_set_spi_wire(bme680_handle_t *handle, bme680_spi_wire_t spi)
set spi wire
bme680_bool_t
bme680 bool enumeration definition
uint8_t bme680_get_gas_measuring_status(bme680_handle_t *handle, bme680_bool_t *enable)
get gas measuring status
uint8_t bme680_set_addr_pin(bme680_handle_t *handle, bme680_address_t addr_pin)
set the iic address pin
uint8_t bme680_set_pressure_oversampling(bme680_handle_t *handle, bme680_oversampling_t oversampling)
set pressure oversampling
uint8_t bme680_set_mode(bme680_handle_t *handle, bme680_mode_t mode)
set mode
struct bme680_handle_s bme680_handle_t
bme680 handle structure definition
uint8_t bme680_get_run_gas(bme680_handle_t *handle, bme680_bool_t *enable)
get run gas status
bme680_spi_wire_t
bme680 spi wire enumeration definition
uint8_t bme680_idac_heat_convert_to_data(bme680_handle_t *handle, uint8_t reg, float *ma)
convert the register raw data to idac heat
uint8_t bme680_get_heater_stability_status(bme680_handle_t *handle, bme680_bool_t *enable)
get heater stability status
uint8_t bme680_set_humidity_oversampling(bme680_handle_t *handle, bme680_oversampling_t oversampling)
set humidity oversampling
uint8_t bme680_get_convert_index(bme680_handle_t *handle, uint8_t *index)
get convert index
uint8_t bme680_get_gas_wait(bme680_handle_t *handle, uint8_t index, uint8_t *reg)
get gas wait
uint8_t bme680_get_gas_valid_status(bme680_handle_t *handle, bme680_bool_t *enable)
get gas valid status
uint8_t bme680_get_addr_pin(bme680_handle_t *handle, bme680_address_t *addr_pin)
get the iic address pin
uint8_t bme680_get_pressure_oversampling(bme680_handle_t *handle, bme680_oversampling_t *oversampling)
get pressure oversampling
@ BME680_FILTER_COEFF_63
@ BME680_FILTER_COEFF_1
@ BME680_FILTER_COEFF_31
@ BME680_FILTER_COEFF_3
@ BME680_FILTER_COEFF_7
@ BME680_FILTER_OFF
@ BME680_FILTER_COEFF_15
@ BME680_FILTER_COEFF_127
@ BME680_MODE_FORCED
@ BME680_MODE_SLEEP
@ BME680_INTERFACE_SPI
@ BME680_INTERFACE_IIC
@ BME680_ADDRESS_ADO_LOW
@ BME680_ADDRESS_ADO_HIGH
@ BME680_OVERSAMPLING_x1
@ BME680_OVERSAMPLING_x16
@ BME680_OVERSAMPLING_x4
@ BME680_OVERSAMPLING_x8
@ BME680_OVERSAMPLING_x2
@ BME680_OVERSAMPLING_SKIP
@ BME680_BOOL_TRUE
@ BME680_BOOL_FALSE
@ BME680_SPI_WIRE_3
@ BME680_SPI_WIRE_4
uint8_t bme680_interface_spi_read(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus read
void bme680_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t bme680_interface_iic_init(void)
interface iic bus init
uint8_t bme680_interface_spi_write(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus write
uint8_t bme680_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
void bme680_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t bme680_interface_spi_init(void)
interface spi bus init
uint8_t bme680_interface_iic_deinit(void)
interface iic bus deinit
uint8_t bme680_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t bme680_interface_spi_deinit(void)
interface spi bus deinit
uint8_t bme680_register_test(bme680_interface_t interface, bme680_address_t addr_pin)
register test
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]