SSLM1 / Mbed 2 deprecated BME680_failure

Dependencies:   mbed

Committer:
sasakisho
Date:
Sun May 17 00:58:51 2020 +0000
Revision:
0:84c0a170d0c0
version0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sasakisho 0:84c0a170d0c0 1 #include "mbed.h"
sasakisho 0:84c0a170d0c0 2
sasakisho 0:84c0a170d0c0 3 Serial pc (USBTX, USBRX);
sasakisho 0:84c0a170d0c0 4 I2C i2c(p9, p10);
sasakisho 0:84c0a170d0c0 5
sasakisho 0:84c0a170d0c0 6 //BME680 Slave address
sasakisho 0:84c0a170d0c0 7 #define ADDR_BME 0xED
sasakisho 0:84c0a170d0c0 8
sasakisho 0:84c0a170d0c0 9 //LPS331AP registers
sasakisho 0:84c0a170d0c0 10 #define BME_WHO 0xD0
sasakisho 0:84c0a170d0c0 11 #define BME_SET1 0x74
sasakisho 0:84c0a170d0c0 12 #define BME_SET2 0x72
sasakisho 0:84c0a170d0c0 13 #define BME_P_LL 0x21
sasakisho 0:84c0a170d0c0 14 #define BME_P_L 0x20
sasakisho 0:84c0a170d0c0 15 #define BME_P_H 0x1F
sasakisho 0:84c0a170d0c0 16
sasakisho 0:84c0a170d0c0 17 char cmd[2];
sasakisho 0:84c0a170d0c0 18
sasakisho 0:84c0a170d0c0 19 void i2c_write(char addr, char regist, char data)
sasakisho 0:84c0a170d0c0 20 {
sasakisho 0:84c0a170d0c0 21 cmd[0] = regist;
sasakisho 0:84c0a170d0c0 22 cmd[0] = data;
sasakisho 0:84c0a170d0c0 23 i2c.write(addr, cmd, 2);
sasakisho 0:84c0a170d0c0 24 }
sasakisho 0:84c0a170d0c0 25
sasakisho 0:84c0a170d0c0 26 char i2c_read(char addr, char regist)
sasakisho 0:84c0a170d0c0 27 {
sasakisho 0:84c0a170d0c0 28 cmd[0] = regist;
sasakisho 0:84c0a170d0c0 29 i2c.write(addr, cmd, 1);
sasakisho 0:84c0a170d0c0 30 i2c.read(addr, cmd, 1);
sasakisho 0:84c0a170d0c0 31 return cmd[0];
sasakisho 0:84c0a170d0c0 32 }
sasakisho 0:84c0a170d0c0 33
sasakisho 0:84c0a170d0c0 34 int main()
sasakisho 0:84c0a170d0c0 35 {
sasakisho 0:84c0a170d0c0 36 unsigned long ID, H, L, XL;
sasakisho 0:84c0a170d0c0 37 char id[2], data[3];
sasakisho 0:84c0a170d0c0 38 double P;
sasakisho 0:84c0a170d0c0 39
sasakisho 0:84c0a170d0c0 40 ID = i2c_read(ADDR_BME, BME_WHO);
sasakisho 0:84c0a170d0c0 41 pc.printf("ID = 0x%x\n", ID);
sasakisho 0:84c0a170d0c0 42
sasakisho 0:84c0a170d0c0 43 while(1)
sasakisho 0:84c0a170d0c0 44 {
sasakisho 0:84c0a170d0c0 45 i2c_write(ADDR_BME, BME_SET1, 0x07);
sasakisho 0:84c0a170d0c0 46 wait(0.5);
sasakisho 0:84c0a170d0c0 47 i2c_write(ADDR_BME, BME_SET2, 0x00);
sasakisho 0:84c0a170d0c0 48
sasakisho 0:84c0a170d0c0 49 H = i2c_read(ADDR_BME, BME_P_H);
sasakisho 0:84c0a170d0c0 50
sasakisho 0:84c0a170d0c0 51 L = i2c_read(ADDR_BME, BME_P_L);
sasakisho 0:84c0a170d0c0 52
sasakisho 0:84c0a170d0c0 53 XL = i2c_read(ADDR_BME, BME_P_LL);
sasakisho 0:84c0a170d0c0 54
sasakisho 0:84c0a170d0c0 55 P = (H << 8) | (L << 8) | XL;
sasakisho 0:84c0a170d0c0 56 pc.printf("P = %lf\n", P);
sasakisho 0:84c0a170d0c0 57
sasakisho 0:84c0a170d0c0 58 wait(1.0);
sasakisho 0:84c0a170d0c0 59
sasakisho 0:84c0a170d0c0 60 }
sasakisho 0:84c0a170d0c0 61
sasakisho 0:84c0a170d0c0 62 }