MBed 5 version of BME280 test verify a BME280 can be reset via the I2C Bus

Dependencies:   mbed

main.cpp

Committer:
Roietronics
Date:
2017-04-14
Revision:
0:8ffd97155ff2

File content as of revision 0:8ffd97155ff2:

#include "mbed.h"

I2C i2c(I2C_SDA , I2C_SCL ); 
Serial debug(USBTX, USBRX);

int main() {
    char buffer[2];
    buffer[1] = 0xE0;
    buffer[0] = 0x86;
    int count = 2;
    int address = 0x77;
    int error;
 //   int i2c_frequency = 200 * 1000;
    int i2c_frequency = 100 * 1000;
    debug.printf("\nI2C BME280 Rest Test");

    i2c.frequency(i2c_frequency);

    i2c.start();
    error = i2c.write(address << 1); //We shift it left because mbed takes in 8 bit addreses
    i2c.stop();
    if (error == 1)
    {
      debug.printf("\nI2C device found at address 0x%X", address);
    }
    else
    {
        debug.printf("\nDevice at IC address Ox%X, not responding", address);
    }
    
    i2c.start();
    error = i2c.write(address << 1, buffer, count); //We shift it left because mbed takes in 8 bit addreses
    i2c.stop();
    if (error == 1)
    {
      debug.printf("\nBME280 reset request send success");
    }
    else
    {
        debug.printf("\nBME280 reset request send failed Error Code: %d", error);
    }
    debug.printf("\ndone\n");
}