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.
Committer:
mbed_official
Date:
Thu Feb 14 17:24:48 2013 +0000
Revision:
0:f76c26307f9a
Child:
2:ab0e4b55d7da
I2C HelloWorld

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:f76c26307f9a 1 #include "mbed.h"
mbed_official 0:f76c26307f9a 2
mbed_official 0:f76c26307f9a 3 // Read temperature from LM75BD
mbed_official 0:f76c26307f9a 4
mbed_official 0:f76c26307f9a 5 I2C i2c(p28, p27);
mbed_official 0:f76c26307f9a 6
mbed_official 0:f76c26307f9a 7 const int addr = 0x90;
mbed_official 0:f76c26307f9a 8
mbed_official 0:f76c26307f9a 9 int main() {
mbed_official 0:f76c26307f9a 10 char cmd[2];
mbed_official 0:f76c26307f9a 11 while (1) {
mbed_official 0:f76c26307f9a 12 cmd[0] = 0x01;
mbed_official 0:f76c26307f9a 13 cmd[1] = 0x00;
mbed_official 0:f76c26307f9a 14 i2c.write(addr, cmd, 2);
mbed_official 0:f76c26307f9a 15
mbed_official 0:f76c26307f9a 16 wait(0.5);
mbed_official 0:f76c26307f9a 17
mbed_official 0:f76c26307f9a 18 cmd[0] = 0x00;
mbed_official 0:f76c26307f9a 19 i2c.write(addr, cmd, 1);
mbed_official 0:f76c26307f9a 20 i2c.read(addr, cmd, 2);
mbed_official 0:f76c26307f9a 21
mbed_official 0:f76c26307f9a 22 float tmp = (float((cmd[0]<<8)|cmd[1]) / 256.0);
mbed_official 0:f76c26307f9a 23 printf("Temp = %.2f\n", tmp);
mbed_official 0:f76c26307f9a 24 }
mbed_official 0:f76c26307f9a 25 }