Minimal working example to demonstrate I2C with SI7021 sensor

Dependencies:   BLE_API mbed nRF51822

Files at this revision

API Documentation at this revision

Comitter:
ghost22
Date:
Sat Dec 10 16:17:12 2016 +0000
Parent:
1:bca7ac3aedac
Commit message:
Fix of I2C

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Fri Dec 09 17:04:02 2016 +0100
+++ b/main.cpp	Sat Dec 10 16:17:12 2016 +0000
@@ -67,13 +67,10 @@
     uint16_t rhcode=0;
         
     Wire.beginTransmission(DEV_ADDR);
-    // Here should be standing 0xE5 or 0xF5
-    Wire.write(0xE3);
-//    wait(1);
-    Wire.beginTransmission(DEV_ADDR);
-    Wire.write( 0x00 );
-    Wire.write( 0x00 );
-    Wire.write( 0x00 );
+
+    Wire.write(0xE5);
+    
+    Wire.endTransmission(0);
 
     Wire.requestFrom(DEV_ADDR+1, 3);
     
@@ -90,9 +87,6 @@
         checksum = Wire.read();
     }
     
-    Wire.endTransmission();
-    
-    
     rhcode = (((msbyte*256.0)+lsbyte)*125.0/65536.0-6.0)*100.0;
     
     if(rhcode<=0)
@@ -112,13 +106,10 @@
     int16_t checksum=0;
     
     Wire.beginTransmission(DEV_ADDR);
-    // Here should be standing 0xE3 or 0xF3
-    Wire.write(0xE5);
-//    wait(1);
-    Wire.beginTransmission(DEV_ADDR);
-    Wire.write( 0x00 );
-    Wire.write( 0x00 );
-    Wire.write( 0x00 );
+
+    Wire.write(0xE3);
+    
+    Wire.endTransmission(0);
 
     Wire.requestFrom(DEV_ADDR+1, 3);
     
@@ -135,7 +126,6 @@
         checksum = Wire.read();
     }
     
-    Wire.endTransmission();
     return (((msbyte*256.0)+lsbyte)*175.72/65536.0-46.85)*100.0;
 }