Files
@ 55d6f1467ce4
Branch filter:
Location: windsonde/Include/bme280.h - annotation
55d6f1467ce4
3.1 KiB
text/plain
Add friendly mode and associated timeout
55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc 55ef914749dc | #ifndef _BME280_H_
#define _BME280_H_
#include <stdbool.h>
#include <inttypes.h>
#include "stm32f0xx_hal.h"
#define BME280_I2C_ADDR 0b11101100
#define PIN_BME280_SDA GPIO_PIN_7
#define PIN_BME280_SCL GPIO_PIN_6
#define PORT_BME280 GPIOB
//Register names
#define BME280_DIG_T1_LSB_REG 0x88
#define BME280_DIG_T1_MSB_REG 0x89
#define BME280_DIG_T2_LSB_REG 0x8A
#define BME280_DIG_T2_MSB_REG 0x8B
#define BME280_DIG_T3_LSB_REG 0x8C
#define BME280_DIG_T3_MSB_REG 0x8D
#define BME280_DIG_P1_LSB_REG 0x8E
#define BME280_DIG_P1_MSB_REG 0x8F
#define BME280_DIG_P2_LSB_REG 0x90
#define BME280_DIG_P2_MSB_REG 0x91
#define BME280_DIG_P3_LSB_REG 0x92
#define BME280_DIG_P3_MSB_REG 0x93
#define BME280_DIG_P4_LSB_REG 0x94
#define BME280_DIG_P4_MSB_REG 0x95
#define BME280_DIG_P5_LSB_REG 0x96
#define BME280_DIG_P5_MSB_REG 0x97
#define BME280_DIG_P6_LSB_REG 0x98
#define BME280_DIG_P6_MSB_REG 0x99
#define BME280_DIG_P7_LSB_REG 0x9A
#define BME280_DIG_P7_MSB_REG 0x9B
#define BME280_DIG_P8_LSB_REG 0x9C
#define BME280_DIG_P8_MSB_REG 0x9D
#define BME280_DIG_P9_LSB_REG 0x9E
#define BME280_DIG_P9_MSB_REG 0x9F
#define BME280_DIG_H1_REG 0xA1
#define BME280_CHIP_ID_REG 0xD0 //Chip ID
#define BME280_RST_REG 0xE0 //Softreset Reg
#define BME280_DIG_H2_LSB_REG 0xE1
#define BME280_DIG_H2_MSB_REG 0xE2
#define BME280_DIG_H3_REG 0xE3
#define BME280_DIG_H4_MSB_REG 0xE4
#define BME280_DIG_H4_LSB_REG 0xE5
#define BME280_DIG_H5_MSB_REG 0xE6
#define BME280_DIG_H6_REG 0xE7
#define BME280_CTRL_HUMIDITY_REG 0xF2 //Ctrl Humidity Reg
#define BME280_STAT_REG 0xF3 //Status Reg
#define BME280_CTRL_MEAS_REG 0xF4 //Ctrl Measure Reg
#define BME280_CONFIG_REG 0xF5 //Configuration Reg
#define BME280_PRESSURE_MSB_REG 0xF7 //Pressure MSB
#define BME280_PRESSURE_LSB_REG 0xF8 //Pressure LSB
#define BME280_PRESSURE_XLSB_REG 0xF9 //Pressure XLSB
#define BME280_TEMPERATURE_MSB_REG 0xFA //Temperature MSB
#define BME280_TEMPERATURE_LSB_REG 0xFB //Temperature LSB
#define BME280_TEMPERATURE_XLSB_REG 0xFC //Temperature XLSB
#define BME280_HUMIDITY_MSB_REG 0xFD //Humidity MSB
#define BME280_HUMIDITY_LSB_REG 0xFE //Humidity LSB
bool bme280_init(void);
void bme280_update(void);
void bme280_update_pressure(void);
void bme280_update_temperature(void);
void bme280_update_humidity(void);
int32_t bme280_get_pressure(void);
int32_t bme280_get_temperature(void);
int32_t bme280_get_humidity(void);
int32_t bme280_read_pressure_raw(void);
int32_t bme280_read_temperature_raw(void);
int32_t bme280_read_humidity_raw(void);
int32_t bme280_read_pressure_raw(void);
int32_t bme280_read_temperature_raw(void);
int32_t bme280_read_humidity_raw(void);
uint8_t bme280_read_byte(uint8_t register_address);
void bme280_read(uint8_t register_address, uint8_t* data, uint8_t length);
void bme280_write(uint8_t register_address, uint8_t data);
int32_t bme280_convert_temperature(int32_t adc_T);
uint32_t bme280_convert_pressure(int32_t adc_P);
uint32_t bme280_convert_humidity(int32_t adc_H);
I2C_HandleTypeDef* bme280_get_i2c_handle(void);
#endif /* _BME280_H_ */
|