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.
Dependencies: BOX_1
SI7021.cpp
00001 #include "SI7021.h" 00002 00003 SI7021::SI7021(PinName sda, PinName scl):i2c(sda, scl) 00004 { 00005 i2c.frequency(FREQ); 00006 } 00007 00008 int32_t SI7021::get_temperature() 00009 { 00010 return tempData; 00011 } 00012 00013 00014 uint32_t SI7021::get_humidity() 00015 { 00016 return humData; 00017 } 00018 00019 bool SI7021::get_data() 00020 { 00021 buff_tx[0] = READ_HUM ; 00022 if(i2c.write(ADDR, (char*)buff_tx, 1) != 0) return 0; 00023 if(i2c.read(ADDR, (char*)buff_rx, 2) != 0) return 0; 00024 00025 humData = ((uint32_t)buff_rx[0] << 8) + (buff_rx[1] & 0xFC); 00026 humData = (((humData) * 15625L) >> 13) - 6000; 00027 00028 buff_tx[0] = READ_TEMP; 00029 if(i2c.write(ADDR, (char*)buff_tx, 1) != 0) return 0; 00030 if(i2c.read(ADDR, (char*)buff_rx, 2) != 0) return 0; 00031 00032 tempData = ((uint32_t)buff_rx[0] << 8) + (buff_rx[1] & 0xFC); 00033 tempData = (((tempData) * 21965L) >> 13) - 46850; 00034 00035 return 1; 00036 } 00037 00038 bool SI7021::check() 00039 { 00040 buff_tx[0] = READ_ID2_1; 00041 buff_tx[1] = READ_ID2_2; 00042 if(i2c.write(ADDR, (char*)buff_tx, 2) != 0) return 0; 00043 if(i2c.read(ADDR, (char*)buff_rx, 8) != 0) return 0; 00044 00045 if(buff_rx[0] == DEVICE_ID) 00046 return true; 00047 else return 0; 00048 }
Generated on Sat Jul 16 2022 00:45:31 by
1.7.2