I2C Hello World, I2C Example
Fork of I2C_HelloWorld_Mbed by
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
Diff: main.cpp
- 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);