test program for my BME280 library. Both I2C and SPI mode have been tested.

Dependencies:   BME280 mbed

Committer:
Rhyme
Date:
Wed May 10 09:15:12 2017 +0000
Revision:
2:1eb83ca3b1d8
Parent:
1:21463f9ca08d
test program for my BME280 library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:7e8c784a0df1 1 #include "mbed.h"
Rhyme 0:7e8c784a0df1 2 #include "MSS.h"
Rhyme 0:7e8c784a0df1 3 #include "BME280.h"
Rhyme 0:7e8c784a0df1 4
Rhyme 1:21463f9ca08d 5 #define SPI_IF 1
Rhyme 1:21463f9ca08d 6 #define I2C_IF 2
Rhyme 1:21463f9ca08d 7
Rhyme 0:7e8c784a0df1 8 #define BME280_I2C_ADDRESS 0x76
Rhyme 0:7e8c784a0df1 9
Rhyme 0:7e8c784a0df1 10 DigitalOut csb(PIN_CS0, 1) ;
Rhyme 0:7e8c784a0df1 11
Rhyme 0:7e8c784a0df1 12 int main() {
Rhyme 0:7e8c784a0df1 13 float temp, hum, pres ;
Rhyme 1:21463f9ca08d 14 BME280 *bme280 = 0 ;
Rhyme 1:21463f9ca08d 15 int used_if = I2C_IF ; /* SPI_IF for SPI */
Rhyme 1:21463f9ca08d 16
Rhyme 1:21463f9ca08d 17 if (used_if == I2C_IF) {
Rhyme 1:21463f9ca08d 18 bme280 = new BME280(PIN_SDA, PIN_SCL, BME280_I2C_ADDRESS) ;
Rhyme 1:21463f9ca08d 19 } else if (used_if == SPI_IF) {
Rhyme 1:21463f9ca08d 20 bme280 = new BME280(PIN_SCK, PIN_MISO, PIN_MOSI, PIN_CS0) ;
Rhyme 1:21463f9ca08d 21 } else {
Rhyme 1:21463f9ca08d 22 printf("Unsupported IF for BME280 [%d]\n", used_if) ;
Rhyme 1:21463f9ca08d 23 exit(EXIT_FAILURE) ;
Rhyme 1:21463f9ca08d 24 }
Rhyme 0:7e8c784a0df1 25
Rhyme 0:7e8c784a0df1 26 bme280->reset() ;
Rhyme 0:7e8c784a0df1 27 wait(2) ;
Rhyme 0:7e8c784a0df1 28 bme280->init() ;
Rhyme 0:7e8c784a0df1 29 wait(1) ;
Rhyme 1:21463f9ca08d 30 printf("\n=== test BME280 for %s (%s) ===\n", BOARD_NAME, __DATE__) ;
Rhyme 1:21463f9ca08d 31 if (used_if == I2C_IF) {
Rhyme 1:21463f9ca08d 32 printf("IF = I2C, ") ;
Rhyme 1:21463f9ca08d 33 } else if (used_if == SPI_IF) {
Rhyme 1:21463f9ca08d 34 printf("IF = SPI, ") ;
Rhyme 1:21463f9ca08d 35 }
Rhyme 0:7e8c784a0df1 36 printf("ID = 0x%02X (0x60 expected for BME280)\n", bme280->getID()) ;
Rhyme 1:21463f9ca08d 37
Rhyme 0:7e8c784a0df1 38 printf("Temperature(C) , Humidity(%%), Pressure(hPa)\n") ;
Rhyme 0:7e8c784a0df1 39 while(1) {
Rhyme 0:7e8c784a0df1 40 bme280->trigger() ;
Rhyme 0:7e8c784a0df1 41 while(bme280->busy()) {
Rhyme 0:7e8c784a0df1 42 wait(0.1) ;
Rhyme 0:7e8c784a0df1 43 }
Rhyme 1:21463f9ca08d 44 temp = bme280->getTemperature() ;
Rhyme 1:21463f9ca08d 45 hum = bme280->getHumidity() ;
Rhyme 1:21463f9ca08d 46 pres = bme280->getPressure() ;
Rhyme 0:7e8c784a0df1 47 printf("%.2f, %.2f, %.2f\n", temp, hum, pres) ;
Rhyme 0:7e8c784a0df1 48 wait(2) ;
Rhyme 0:7e8c784a0df1 49 }
Rhyme 0:7e8c784a0df1 50 }