Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
BME280.h
00001 //********************** 00002 // BME280.h for mbed 00003 // 00004 // (C)Copyright 2015 All rights reserved by Y.Onodera 00005 // http://einstlab.web.fc2.com 00006 //********************** 00007 #ifndef BME280_H_ 00008 #define BME280_H_ 00009 00010 #define BME280_ADDR 0xEC 00011 #define hum_lsb 0xFE 00012 #define hum_msb 0xFD 00013 #define temp_xlsb 0xFC 00014 #define temp_lsb 0xFB 00015 #define temp_msb 0xFA 00016 #define press_xlsb 0xF9 00017 #define press_lsb 0xF8 00018 #define press_msb 0xF7 00019 #define config 0xF5 00020 #define ctrl_meas 0xF4 00021 #define status 0xF3 00022 #define ctrl_hum 0xF2 00023 #define calib41 0xF0 00024 #define calib40 0xEF 00025 #define calib39 0xEE 00026 #define calib38 0xED 00027 #define calib37 0xEC 00028 #define calib36 0xEB 00029 #define calib35 0xEA 00030 #define calib34 0xE9 00031 #define calib33 0xE8 00032 #define calib32 0xE7 00033 #define calib31 0xE6 00034 #define calib30 0xE5 00035 #define calib29 0xE4 00036 #define calib28 0xE3 00037 #define calib27 0xE2 00038 #define calib26 0xE1 00039 #define reset 0xE0 00040 #define id 0xD0 00041 #define calib25 0xA1 00042 #define calib24 0xA0 00043 #define calib23 0x9F 00044 #define calib22 0x9E 00045 #define calib21 0x9D 00046 #define calib20 0x9C 00047 #define calib19 0x9B 00048 #define calib18 0x9A 00049 #define calib17 0x99 00050 #define calib16 0x98 00051 #define calib15 0x97 00052 #define calib14 0x96 00053 #define calib13 0x95 00054 #define calib12 0x94 00055 #define calib11 0x93 00056 #define calib10 0x92 00057 #define calib09 0x91 00058 #define calib08 0x90 00059 #define calib07 0x8F 00060 #define calib06 0x8E 00061 #define calib05 0x8D 00062 #define calib04 0x8C 00063 #define calib03 0x8B 00064 #define calib02 0x8A 00065 #define calib01 0x89 00066 #define calib00 0x88 00067 00068 #include "mbed.h" 00069 00070 // see BST-BME280-DS001-10 00071 #define BME280_S32_t signed int 00072 #define BME280_S64_t signed long long 00073 #define BME280_U32_t unsigned int 00074 00075 00076 union WORD32 { 00077 signed int s32; 00078 unsigned int u32; 00079 struct { 00080 unsigned char dummy; 00081 unsigned char XLSB; 00082 unsigned char LSB; 00083 unsigned char MSB; 00084 }; 00085 }; 00086 00087 union WORD16 { 00088 signed short s16; 00089 unsigned short u16; 00090 struct { 00091 unsigned char LSB; 00092 unsigned char MSB; 00093 }; 00094 }; 00095 00096 00097 class BME280{ 00098 public: 00099 BME280 (PinName sda, PinName scl); 00100 BME280 (I2C& p_i2c); 00101 00102 void set(unsigned char a,unsigned char b); 00103 unsigned char get(unsigned char a); 00104 void getALL(); 00105 unsigned int humidity(); 00106 signed int temperature(); 00107 unsigned int pressure(); 00108 void init(); 00109 00110 protected: 00111 00112 I2C _i2c; 00113 00114 union WORD16 calib; 00115 union WORD16 hum; 00116 union WORD32 temp; 00117 union WORD32 press; 00118 char buf[8]; 00119 00120 unsigned short dig_T1; 00121 signed short dig_T2; 00122 signed short dig_T3; 00123 unsigned short dig_P1; 00124 signed short dig_P2; 00125 signed short dig_P3; 00126 signed short dig_P4; 00127 signed short dig_P5; 00128 signed short dig_P6; 00129 signed short dig_P7; 00130 signed short dig_P8; 00131 signed short dig_P9; 00132 unsigned char dig_H1; 00133 signed short dig_H2; 00134 unsigned char dig_H3; 00135 signed short dig_H4; 00136 signed short dig_H5; 00137 signed char dig_H6; 00138 00139 BME280_S32_t t_fine; 00140 BME280_S32_t BME280_compensate_T_int32(BME280_S32_t adc_T); 00141 BME280_U32_t BME280_compensate_P_int64(BME280_S32_t adc_P); 00142 BME280_U32_t BME280_compensate_H_int32(BME280_S32_t adc_H); 00143 unsigned int t; 00144 signed int p; 00145 signed int h; 00146 }; 00147 00148 #endif /* BME280_H_ */ 00149 00150
Generated on Sat Jul 16 2022 09:34:27 by
1.7.2