BME280 Adafruit sensor with Mbed-os compatibility.
Fork of BME280 by
BME280.h
- Committer:
- saranjay
- Date:
- 2020-07-25
- Revision:
- 2:ee200b715195
- Parent:
- 1:7b525853bad0
File content as of revision 2:ee200b715195:
#ifndef _BME280_H_ #define _BME280_H_ #include "mbed.h" typedef int32_t BME280_S32_t ; typedef uint32_t BME280_U32_t ; typedef long long signed int BME280_S64_t ; #if 0 #define BME280_U32_t uint32_t #define BME280_S32_t int32_t #define BME280_S64_t int64_t #endif /** * BME280 Environmental sensor * * @note Note: Interface selection is done by the value of CSB (chip select) * @note if CSB is pulled-up, I2C interface is active. * @note if CSB is pulled-down, SPI interface is active. * @note After CSB has been pulled down once (regardless of whether any clock cycle occurred) * @note the I2C interface is disabled until the next power-on-reset. */ class BME280 { public: /** * BME280 I2C Interface * * @param sda SDA pin * @param scl SCL pin * @param addr address of the I2C peripheral */ BME280(PinName sda, PinName scl, int addr) ; /** * BME280 SPI Interface * * @param sck SPI SCKL pin * @param miso SPI Master In Slave Out pin * @param mosi SPI Master Out Slave In pin * @param cs SPI Chip Select pin */ BME280(PinName sck, PinName miso, PinName mosi, PinName cs) ; /** * BME280 destructor */ ~BME280() ; /** * software reset * * @param none * @returns none */ void reset(void) ; /** * initialization * * @param none * @reurns none */ void init(void) ; /** * trigger for one-shot measure * * @param none * @returns none */ void trigger(void) ; /** * check status register for the device activity * * @param none * @returns uint8_t measuring (0x08) or in NVM udpate (0x01) */ uint8_t busy(void) ; /** * get device ID * * @param none * @returns uint8_t ID for BME280 0x60 */ uint8_t getID(void) ; /** * get Temperature * * @param none * @returns float temperature in degree Celsious */ float getTemperature(void) ; /** * get Humidity * * @param none * @returns float humidity in % */ float getHumidity(void) ; /** * get Pressure * * @param none * @returns float pressure in hPa */ float getPressure(void) ; private: SPI *m_spi ; I2C *m_i2c ; DigitalOut *m_cs ; int m_addr ; BME280_S32_t t_fine ; uint16_t dig_T1 ; int16_t dig_T2 ; int16_t dig_T3 ; uint16_t dig_P1 ; int16_t dig_P2 ; int16_t dig_P3 ; int16_t dig_P4 ; int16_t dig_P5 ; int16_t dig_P6 ; int16_t dig_P7 ; int16_t dig_P8 ; int16_t dig_P9 ; uint8_t dig_H1 ; int16_t dig_H2 ; uint8_t dig_H3 ; int16_t dig_H4 ; int16_t dig_H5 ; int8_t dig_H6 ; void i2c_readRegs(int addr, uint8_t *data, int len) ; void i2c_writeRegs(uint8_t *data, int len) ; void spi_readRegs(int addr, uint8_t *data, int len) ; void spi_writeRegs(uint8_t *data, int len) ; void readRegs(int addr, uint8_t *data, int len) ; void writeRegs(uint8_t *data, int len) ; } ; #endif /* _BME280_H_ */