![]() |
LibDriver BME688
|
driver bme688 source file More...
#include "driver_bme688.h"Go to the source code of this file.
Functions | |
| uint8_t | bme688_set_addr_pin (bme688_handle_t *handle, bme688_address_t addr_pin) |
| set the iic address pin | |
| uint8_t | bme688_get_addr_pin (bme688_handle_t *handle, bme688_address_t *addr_pin) |
| get the iic address pin | |
| uint8_t | bme688_set_interface (bme688_handle_t *handle, bme688_interface_t interface) |
| set the interface | |
| uint8_t | bme688_get_interface (bme688_handle_t *handle, bme688_interface_t *interface) |
| get the interface | |
| uint8_t | bme688_init (bme688_handle_t *handle) |
| initialize the chip | |
| uint8_t | bme688_deinit (bme688_handle_t *handle) |
| close the chip | |
| uint8_t | bme688_set_idac_heater (bme688_handle_t *handle, uint8_t index, uint8_t reg) |
| set idac heater | |
| uint8_t | bme688_get_idac_heater (bme688_handle_t *handle, uint8_t index, uint8_t *reg) |
| get idac heater | |
| uint8_t | bme688_set_resistance_heater (bme688_handle_t *handle, uint8_t index, uint8_t reg) |
| set resistance heater | |
| uint8_t | bme688_get_resistance_heater (bme688_handle_t *handle, uint8_t index, uint8_t *reg) |
| get resistance heater | |
| uint8_t | bme688_set_gas_wait (bme688_handle_t *handle, uint8_t index, uint8_t reg) |
| set gas wait | |
| uint8_t | bme688_get_gas_wait (bme688_handle_t *handle, uint8_t index, uint8_t *reg) |
| get gas wait | |
| uint8_t | bme688_set_gas_wait_shared (bme688_handle_t *handle, uint8_t reg) |
| set gas wait shared | |
| uint8_t | bme688_get_gas_wait_shared (bme688_handle_t *handle, uint8_t *reg) |
| get gas wait shared | |
| uint8_t | bme688_soft_reset (bme688_handle_t *handle) |
| soft reset | |
| uint8_t | bme688_set_spi_wire_3_data_interrupt (bme688_handle_t *handle, bme688_bool_t enable) |
| enable or disable spi wire3 data interrupt | |
| uint8_t | bme688_get_spi_wire_3_data_interrupt (bme688_handle_t *handle, bme688_bool_t *enable) |
| get spi wire3 data interrupt status | |
| uint8_t | bme688_set_humidity_oversampling (bme688_handle_t *handle, bme688_oversampling_t oversampling) |
| set humidity oversampling | |
| uint8_t | bme688_get_humidity_oversampling (bme688_handle_t *handle, bme688_oversampling_t *oversampling) |
| get humidity oversampling | |
| uint8_t | bme688_set_temperature_oversampling (bme688_handle_t *handle, bme688_oversampling_t oversampling) |
| set temperature oversampling | |
| uint8_t | bme688_get_temperature_oversampling (bme688_handle_t *handle, bme688_oversampling_t *oversampling) |
| get temperature oversampling | |
| uint8_t | bme688_set_pressure_oversampling (bme688_handle_t *handle, bme688_oversampling_t oversampling) |
| set pressure oversampling | |
| uint8_t | bme688_get_pressure_oversampling (bme688_handle_t *handle, bme688_oversampling_t *oversampling) |
| get pressure oversampling | |
| uint8_t | bme688_set_mode (bme688_handle_t *handle, bme688_mode_t mode) |
| set mode | |
| uint8_t | bme688_get_mode (bme688_handle_t *handle, bme688_mode_t *mode) |
| get mode | |
| uint8_t | bme688_set_filter (bme688_handle_t *handle, bme688_filter_t filter) |
| set filter | |
| uint8_t | bme688_get_filter (bme688_handle_t *handle, bme688_filter_t *filter) |
| get filter | |
| uint8_t | bme688_set_spi_wire (bme688_handle_t *handle, bme688_spi_wire_t spi) |
| set spi wire | |
| uint8_t | bme688_get_spi_wire (bme688_handle_t *handle, bme688_spi_wire_t *spi) |
| get spi wire | |
| uint8_t | bme688_set_heater_off (bme688_handle_t *handle, bme688_bool_t enable) |
| enable or disable heater off | |
| uint8_t | bme688_get_heater_off (bme688_handle_t *handle, bme688_bool_t *enable) |
| get heater off status | |
| uint8_t | bme688_set_run_gas (bme688_handle_t *handle, bme688_bool_t enable) |
| enable or disable run gas | |
| uint8_t | bme688_get_run_gas (bme688_handle_t *handle, bme688_bool_t *enable) |
| get run gas status | |
| uint8_t | bme688_set_heater_profile (bme688_handle_t *handle, bme688_heater_profile_t profile) |
| set heater profile | |
| uint8_t | bme688_get_heater_profile (bme688_handle_t *handle, bme688_heater_profile_t *profile) |
| get heater profile | |
| uint8_t | bme688_resistance_heater_convert_to_register (bme688_handle_t *handle, float degree_celsius, uint8_t *reg) |
| convert the resistance heater to the register raw data | |
| uint8_t | bme688_idac_heater_convert_to_register (bme688_handle_t *handle, float ma, uint8_t *reg) |
| convert the idac heater to the register raw data | |
| uint8_t | bme688_idac_heater_convert_to_data (bme688_handle_t *handle, uint8_t reg, float *ma) |
| convert the register raw data to idac heater | |
| uint8_t | bme688_gas_wait_convert_to_register (bme688_handle_t *handle, uint16_t ms, uint8_t *reg) |
| convert the gas wait to the register raw data | |
| uint8_t | bme688_gas_wait_shared_convert_to_register (bme688_handle_t *handle, float m, uint8_t *reg) |
| convert the gas wait shared to the register raw data | |
| uint8_t | bme688_get_new_data_status (bme688_handle_t *handle, bme688_section_t section, bme688_bool_t *enable) |
| get new data status | |
| uint8_t | bme688_get_gas_measuring_status (bme688_handle_t *handle, bme688_section_t section, bme688_bool_t *enable) |
| get gas measuring status | |
| uint8_t | bme688_get_measuring_status (bme688_handle_t *handle, bme688_section_t section, bme688_bool_t *enable) |
| get measuring status | |
| uint8_t | bme688_get_gas_measuring_index (bme688_handle_t *handle, bme688_section_t section, uint8_t *index) |
| get gas measuring index | |
| uint8_t | bme688_get_gas_valid_status (bme688_handle_t *handle, bme688_section_t section, bme688_bool_t *enable) |
| get gas valid status | |
| uint8_t | bme688_get_heater_stability_status (bme688_handle_t *handle, bme688_section_t section, bme688_bool_t *enable) |
| get heater stability status | |
| uint8_t | bme688_get_sub_measurement_index (bme688_handle_t *handle, bme688_section_t section, uint8_t *ind) |
| get sub measurement index | |
| uint8_t | bme688_read_gas_resistance (bme688_handle_t *handle, bme688_section_t section, uint16_t *adc_raw, uint8_t *adc_range, float *ohms, uint8_t *index) |
| read the gas resistance | |
| uint8_t | bme688_read_pressure (bme688_handle_t *handle, bme688_section_t section, uint32_t *pressure_raw, float *pressure_pa) |
| read the pressure data | |
| uint8_t | bme688_read_temperature (bme688_handle_t *handle, bme688_section_t section, uint32_t *temperature_raw, float *temperature_c) |
| read the temperature data | |
| uint8_t | bme688_read_humidity (bme688_handle_t *handle, bme688_section_t section, uint32_t *humidity_raw, float *humidity_percentage) |
| read the humidity data | |
| uint8_t | bme688_read_temperature_pressure_humidity (bme688_handle_t *handle, bme688_section_t section, uint32_t *temperature_raw, float *temperature_c, uint32_t *pressure_raw, float *pressure_pa, uint32_t *humidity_raw, float *humidity_percentage) |
| read the temperature pressure and humidity data | |
| uint8_t | bme688_read (bme688_handle_t *handle, bme688_section_t section, uint32_t *temperature_raw, float *temperature_c, uint32_t *pressure_raw, float *pressure_pa, uint32_t *humidity_raw, float *humidity_percentage, uint16_t *adc_raw, uint8_t *adc_range, float *ohms, uint8_t *index) |
| read the temperature pressure humidity and gas resistance | |
| uint8_t | bme688_parallel_progress (bme688_handle_t *handle) |
| parallel progress | |
| uint8_t | bme688_parallel_reset (bme688_handle_t *handle) |
| parallel reset | |
| uint8_t | bme688_parallel_config (bme688_handle_t *handle, bme688_parallel_config_t *config) |
| parallel config | |
| uint8_t | bme688_set_reg (bme688_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len) |
| set the chip register | |
| uint8_t | bme688_get_reg (bme688_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len) |
| get the chip register | |
| uint8_t | bme688_info (bme688_info_t *info) |
| get chip's information | |
driver bme688 source file
Copyright (c) 2015 - present LibDriver All rights reserved
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
| Date | Version | Author | Description |
|---|---|---|---|
| 2026/03/15 | 1.0 | Shifeng Li | first upload |
Definition in file driver_bme688.c.
| #define BME688_REG_CONFIG 0x75 |
config register
Definition at line 95 of file driver_bme688.c.
| #define BME688_REG_CTRL_GAS_0 0x70 |
control gas0 register
Definition at line 99 of file driver_bme688.c.
| #define BME688_REG_CTRL_GAS_1 0x71 |
control gas1 register
Definition at line 98 of file driver_bme688.c.
| #define BME688_REG_CTRL_HUM 0x72 |
control humidity register
Definition at line 97 of file driver_bme688.c.
| #define BME688_REG_CTRL_MEAS 0x74 |
control meas register
Definition at line 96 of file driver_bme688.c.
| #define BME688_REG_GAS_R_LSB_0 0x2D |
gas r lsb register
Definition at line 128 of file driver_bme688.c.
| #define BME688_REG_GAS_R_LSB_1 0x3E |
gas r lsb register
Definition at line 116 of file driver_bme688.c.
| #define BME688_REG_GAS_R_LSB_2 0x4F |
gas r lsb register
Definition at line 104 of file driver_bme688.c.
| #define BME688_REG_GAS_R_MSB_0 0x2C |
gas r msb register
Definition at line 129 of file driver_bme688.c.
| #define BME688_REG_GAS_R_MSB_1 0x3D |
gas r msb register
Definition at line 117 of file driver_bme688.c.
| #define BME688_REG_GAS_R_MSB_2 0x4E |
gas r msb register
Definition at line 105 of file driver_bme688.c.
| #define BME688_REG_GAS_WAIT_SHARED 0x6E |
gas wait shared register
Definition at line 100 of file driver_bme688.c.
| #define BME688_REG_GAS_WAIT_X 0x64 |
gas wait 0 register
Definition at line 101 of file driver_bme688.c.
| #define BME688_REG_HUM_LSB_0 0x26 |
hum lsb register
Definition at line 130 of file driver_bme688.c.
| #define BME688_REG_HUM_LSB_1 0x37 |
hum lsb register
Definition at line 118 of file driver_bme688.c.
| #define BME688_REG_HUM_LSB_2 0x48 |
hum lsb register
Definition at line 106 of file driver_bme688.c.
| #define BME688_REG_HUM_MSB_0 0x25 |
hum msb register
Definition at line 131 of file driver_bme688.c.
| #define BME688_REG_HUM_MSB_1 0x36 |
hum msb register
Definition at line 119 of file driver_bme688.c.
| #define BME688_REG_HUM_MSB_2 0x47 |
hum msb register
Definition at line 107 of file driver_bme688.c.
| #define BME688_REG_ID 0xD0 |
id register
Definition at line 94 of file driver_bme688.c.
| #define BME688_REG_IDAC_HEAT_X 0x50 |
idac heat 0 register
Definition at line 103 of file driver_bme688.c.
| #define BME688_REG_MEAS_STATUS_0 0x1D |
meas status 0 register
Definition at line 139 of file driver_bme688.c.
| #define BME688_REG_MEAS_STATUS_1 0x2E |
meas status 0 register
Definition at line 127 of file driver_bme688.c.
| #define BME688_REG_MEAS_STATUS_2 0x3F |
meas status 0 register
Definition at line 115 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_G1 0xED |
NVM PAR G1 register
Definition at line 84 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_G2_H 0xEC |
NVM PAR G2 high register
Definition at line 86 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_G2_L 0xEB |
NVM PAR G2 low register
Definition at line 85 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_G3 0xEE |
NVM PAR G3 register
Definition at line 87 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_H1_H 0xE3 |
NVM PAR H1 high register
Definition at line 76 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_H1_L 0xE2 |
NVM PAR H1 low register
Definition at line 75 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_H2_H 0xE1 |
NVM PAR H2 high register
Definition at line 78 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_H2_L 0xE2 |
NVM PAR H2 low register
Definition at line 77 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_H3 0xE4 |
NVM PAR H3 register
Definition at line 79 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_H4 0xE5 |
NVM PAR H4 register
Definition at line 80 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_H5 0xE6 |
NVM PAR H5 register
Definition at line 81 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_H6 0xE7 |
NVM PAR H6 register
Definition at line 82 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_H7 0xE8 |
NVM PAR H7 register
Definition at line 83 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P10 0xA0 |
NVM PAR P10 register
Definition at line 74 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P1_H 0x8F |
NVM PAR P1 high register
Definition at line 60 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P1_L 0x8E |
NVM PAR P1 low register
Definition at line 59 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P2_H 0x91 |
NVM PAR P2 high register
Definition at line 62 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P2_L 0x90 |
NVM PAR P2 low register
Definition at line 61 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P3 0x92 |
NVM PAR P3 register
Definition at line 63 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P4_H 0x95 |
NVM PAR P4 high register
Definition at line 65 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P4_L 0x94 |
NVM PAR P4 low register
Definition at line 64 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P5_H 0x97 |
NVM PAR P5 high register
Definition at line 67 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P5_L 0x96 |
NVM PAR P5 low register
Definition at line 66 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P6 0x99 |
NVM PAR P6 register
Definition at line 68 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P7 0x98 |
NVM PAR P7 register
Definition at line 69 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P8_H 0x9D |
NVM PAR P8 high register
Definition at line 71 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P8_L 0x9C |
NVM PAR P8 low register
Definition at line 70 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P9_H 0x9F |
NVM PAR P9 high register
Definition at line 73 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_P9_L 0x9E |
NVM PAR P9 low register
Definition at line 72 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_T1_H 0xEA |
NVM PAR T1 high register
Definition at line 55 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_T1_L 0xE9 |
| #define BME688_REG_NVM_PAR_T2_H 0x8B |
NVM PAR T2 high register
Definition at line 57 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_T2_L 0x8A |
NVM PAR T2 low register
Definition at line 56 of file driver_bme688.c.
| #define BME688_REG_NVM_PAR_T3 0x8C |
NVM PAR T3 register
Definition at line 58 of file driver_bme688.c.
| #define BME688_REG_NVM_RANGE_SWITCH 0x04 |
NVM RANGE SWITCH ERROR register
Definition at line 90 of file driver_bme688.c.
| #define BME688_REG_NVM_RES_HEAT_RANGE 0x02 |
NVM RES HEAT RANGE register
Definition at line 88 of file driver_bme688.c.
| #define BME688_REG_NVM_RES_HEAT_VAL 0x00 |
NVM RES HEAT VAL register
Definition at line 89 of file driver_bme688.c.
| #define BME688_REG_PRESS_LSB_0 0x20 |
press lsb register
Definition at line 136 of file driver_bme688.c.
| #define BME688_REG_PRESS_LSB_1 0x31 |
press lsb register
Definition at line 124 of file driver_bme688.c.
| #define BME688_REG_PRESS_LSB_2 0x42 |
press lsb register
Definition at line 112 of file driver_bme688.c.
| #define BME688_REG_PRESS_MSB_0 0x1F |
press msb register
Definition at line 137 of file driver_bme688.c.
| #define BME688_REG_PRESS_MSB_1 0x30 |
press msb register
Definition at line 125 of file driver_bme688.c.
| #define BME688_REG_PRESS_MSB_2 0x41 |
press msb register
Definition at line 113 of file driver_bme688.c.
| #define BME688_REG_PRESS_XLSB_0 0x21 |
press xlsb register
Definition at line 135 of file driver_bme688.c.
| #define BME688_REG_PRESS_XLSB_1 0x32 |
press xlsb register
Definition at line 123 of file driver_bme688.c.
| #define BME688_REG_PRESS_XLSB_2 0x43 |
press xlsb register
Definition at line 111 of file driver_bme688.c.
| #define BME688_REG_RES_HEAT_X 0x5A |
res heat 0 register
Definition at line 102 of file driver_bme688.c.
| #define BME688_REG_RESET 0xE0 |
reset register
Definition at line 93 of file driver_bme688.c.
| #define BME688_REG_STATUS 0x73 |
status register
Definition at line 91 of file driver_bme688.c.
| #define BME688_REG_SUB_MEAS_INDEX_0 0x1E |
sub meas index register
Definition at line 138 of file driver_bme688.c.
| #define BME688_REG_SUB_MEAS_INDEX_1 0x2F |
sub meas index register
Definition at line 126 of file driver_bme688.c.
| #define BME688_REG_SUB_MEAS_INDEX_2 0x40 |
sub meas index register
Definition at line 114 of file driver_bme688.c.
| #define BME688_REG_TEMP_LSB_0 0x23 |
temp lsb register
Definition at line 133 of file driver_bme688.c.
| #define BME688_REG_TEMP_LSB_1 0x34 |
temp lsb register
Definition at line 121 of file driver_bme688.c.
| #define BME688_REG_TEMP_LSB_2 0x45 |
temp lsb register
Definition at line 109 of file driver_bme688.c.
| #define BME688_REG_TEMP_MSB_0 0x22 |
temp msb register
Definition at line 134 of file driver_bme688.c.
| #define BME688_REG_TEMP_MSB_1 0x33 |
temp msb register
Definition at line 122 of file driver_bme688.c.
| #define BME688_REG_TEMP_MSB_2 0x44 |
temp msb register
Definition at line 110 of file driver_bme688.c.
| #define BME688_REG_TEMP_XLSB_0 0x24 |
temp xlsb register
Definition at line 132 of file driver_bme688.c.
| #define BME688_REG_TEMP_XLSB_1 0x35 |
temp xlsb register
Definition at line 120 of file driver_bme688.c.
| #define BME688_REG_TEMP_XLSB_2 0x46 |
temp xlsb register
Definition at line 108 of file driver_bme688.c.
| #define BME688_REG_VARIANT_ID 0xF0 |
variant id register
Definition at line 92 of file driver_bme688.c.
| #define CHIP_NAME "Bosch BME688" |
| #define DRIVER_VERSION 1000 |
driver version
Definition at line 49 of file driver_bme688.c.
| #define MANUFACTURER_NAME "Bosch" |
manufacturer name
Definition at line 43 of file driver_bme688.c.
| #define MAX_CURRENT 0.849f |
chip max current
Definition at line 46 of file driver_bme688.c.
| #define SUPPLY_VOLTAGE_MAX 3.6f |
chip max supply voltage
Definition at line 45 of file driver_bme688.c.
| #define SUPPLY_VOLTAGE_MIN 1.71f |
chip min supply voltage
Definition at line 44 of file driver_bme688.c.
| #define TEMPERATURE_MAX 85.0f |
chip max operating temperature
Definition at line 48 of file driver_bme688.c.
| #define TEMPERATURE_MIN -40.0f |
chip min operating temperature
Definition at line 47 of file driver_bme688.c.