A library to read BME280 sensor with error detection
Fork of BME280 by
Diff: BME280.cpp
- Revision:
- 5:3eb4c6c38dc4
- Parent:
- 4:ddcaa259e65b
- Child:
- 6:2f87adc3e6b7
--- a/BME280.cpp Tue May 12 13:32:09 2015 +0000
+++ b/BME280.cpp Fri Dec 30 03:13:46 2016 +0000
@@ -107,9 +107,12 @@
char cmd[4];
cmd[0] = 0xfa; // temp_msb
- i2c.write(address, cmd, 1);
- i2c.read(address, &cmd[1], 3);
-
+ int writeResult = i2c.write(address, cmd, 1);
+ int readResult = i2c.read(address, &cmd[1], 3);
+
+ if(writeResult != 0 || readResult != 0)
+ return -10000000;
+
temp_raw = (cmd[1] << 12) | (cmd[2] << 4) | (cmd[3] >> 4);
int32_t temp;
@@ -132,8 +135,11 @@
char cmd[4];
cmd[0] = 0xf7; // press_msb
- i2c.write(address, cmd, 1);
- i2c.read(address, &cmd[1], 3);
+ int writeResult = i2c.write(address, cmd, 1);
+ int readResult = i2c.read(address, &cmd[1], 3);
+
+ if(writeResult != 0 || readResult != 0)
+ return -10000000;
press_raw = (cmd[1] << 12) | (cmd[2] << 4) | (cmd[3] >> 4);
@@ -170,8 +176,11 @@
char cmd[4];
cmd[0] = 0xfd; // hum_msb
- i2c.write(address, cmd, 1);
- i2c.read(address, &cmd[1], 2);
+ int writeResult = i2c.write(address, cmd, 1);
+ int readResult = i2c.read(address, &cmd[1], 2);
+
+ if(writeResult != 0 || readResult != 0)
+ return -10000000;
hum_raw = (cmd[1] << 8) | cmd[2];
