I2C Hello World, I2C Example

Fork of I2C_HelloWorld_Mbed by Mbed

Use

The mbed I2C API uses 8 bit addressing and will auto append the 0 or 1 for read/write mode. Please keep in mind that every I2C set up has its own quirks so this example may not work out of the box for your sensor / application. Make sure to check the data sheet for your part for the timing / register access specification.

API

API reference.

Import librarymbed

No documentation found.
Revision:
2:ab0e4b55d7da
Parent:
0:f76c26307f9a
Child:
3:df6232c70efd
--- a/main.cpp	Sun Sep 21 18:36:51 2014 +0000
+++ b/main.cpp	Sun Sep 21 19:01:55 2014 +0000
@@ -2,22 +2,23 @@
  
 // Read temperature from LM75BD
 
-I2C i2c(p28, p27);
+I2C i2c(I2C_SDA , I2C_SCL ); 
 
-const int addr = 0x90;
+const int addr7bit = 0x48;      // 7 bit I2C address
+const int addr8bit = 0x48 << 1; // 8bit I2C address, 0x90
 
 int main() {
     char cmd[2];
     while (1) {
         cmd[0] = 0x01;
         cmd[1] = 0x00;
-        i2c.write(addr, cmd, 2);
+        i2c.write(addr8bit, cmd, 2);
  
         wait(0.5);
  
         cmd[0] = 0x00;
-        i2c.write(addr, cmd, 1);
-        i2c.read(addr, cmd, 2);
+        i2c.write(addr8bit, cmd, 1);
+        i2c.read( addr8bit, cmd, 2);
  
         float tmp = (float((cmd[0]<<8)|cmd[1]) / 256.0);
         printf("Temp = %.2f\n", tmp);