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

Dependencies:   mbed

Committer:
Roietronics
Date:
Fri Apr 14 02:03:45 2017 +0000
Revision:
0:8ffd97155ff2
Update to MBED OS 5.4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Roietronics 0:8ffd97155ff2 1 #include "mbed.h"
Roietronics 0:8ffd97155ff2 2
Roietronics 0:8ffd97155ff2 3 I2C i2c(I2C_SDA , I2C_SCL );
Roietronics 0:8ffd97155ff2 4 Serial debug(USBTX, USBRX);
Roietronics 0:8ffd97155ff2 5
Roietronics 0:8ffd97155ff2 6 int main() {
Roietronics 0:8ffd97155ff2 7 char buffer[2];
Roietronics 0:8ffd97155ff2 8 buffer[1] = 0xE0;
Roietronics 0:8ffd97155ff2 9 buffer[0] = 0x86;
Roietronics 0:8ffd97155ff2 10 int count = 2;
Roietronics 0:8ffd97155ff2 11 int address = 0x77;
Roietronics 0:8ffd97155ff2 12 int error;
Roietronics 0:8ffd97155ff2 13 // int i2c_frequency = 200 * 1000;
Roietronics 0:8ffd97155ff2 14 int i2c_frequency = 100 * 1000;
Roietronics 0:8ffd97155ff2 15 debug.printf("\nI2C BME280 Rest Test");
Roietronics 0:8ffd97155ff2 16
Roietronics 0:8ffd97155ff2 17 i2c.frequency(i2c_frequency);
Roietronics 0:8ffd97155ff2 18
Roietronics 0:8ffd97155ff2 19 i2c.start();
Roietronics 0:8ffd97155ff2 20 error = i2c.write(address << 1); //We shift it left because mbed takes in 8 bit addreses
Roietronics 0:8ffd97155ff2 21 i2c.stop();
Roietronics 0:8ffd97155ff2 22 if (error == 1)
Roietronics 0:8ffd97155ff2 23 {
Roietronics 0:8ffd97155ff2 24 debug.printf("\nI2C device found at address 0x%X", address);
Roietronics 0:8ffd97155ff2 25 }
Roietronics 0:8ffd97155ff2 26 else
Roietronics 0:8ffd97155ff2 27 {
Roietronics 0:8ffd97155ff2 28 debug.printf("\nDevice at IC address Ox%X, not responding", address);
Roietronics 0:8ffd97155ff2 29 }
Roietronics 0:8ffd97155ff2 30
Roietronics 0:8ffd97155ff2 31 i2c.start();
Roietronics 0:8ffd97155ff2 32 error = i2c.write(address << 1, buffer, count); //We shift it left because mbed takes in 8 bit addreses
Roietronics 0:8ffd97155ff2 33 i2c.stop();
Roietronics 0:8ffd97155ff2 34 if (error == 1)
Roietronics 0:8ffd97155ff2 35 {
Roietronics 0:8ffd97155ff2 36 debug.printf("\nBME280 reset request send success");
Roietronics 0:8ffd97155ff2 37 }
Roietronics 0:8ffd97155ff2 38 else
Roietronics 0:8ffd97155ff2 39 {
Roietronics 0:8ffd97155ff2 40 debug.printf("\nBME280 reset request send failed Error Code: %d", error);
Roietronics 0:8ffd97155ff2 41 }
Roietronics 0:8ffd97155ff2 42 debug.printf("\ndone\n");
Roietronics 0:8ffd97155ff2 43 }