api / mbed / trunk / I2C

I2C

class I2C : public Base

An I2C Master, used for communicating with I2C slave devices

Example

// Read from I2C slave at address 0x62

#include "mbed.h"

I2C i2c(p28, p27);

int main() {
    int address = 0x62;
    char data[2];
    i2c.read(address, data, 2);
}
I2CAn I2C Master, used for communicating with I2C slave devices
Functions
I2CCreate an I2C Master interface, connected to the specified pins
frequencySet the frequency of the I2C interface
readRead from an I2C slave
readRead a single byte from the I2C bus
writeWrite to an I2C slave
writeWrite single byte out on the I2C bus
startCreates a start condition on the I2C bus
stopCreates a stop condition on the I2C bus

Functions

I2C

I2C(PinName sda,  
PinName scl,  
const char *name =  NULL)

Create an I2C Master interface, connected to the specified pins

Variables

sdaI2C data line pin
sclI2C clock line pin

frequency

void frequency(int hz)

Set the frequency of the I2C interface

Variables

hzThe bus frequency in hertz

read

int read(int address,  
char *data,  
int length,  
bool repeated =  false)

Read from an I2C slave

Performs a complete read transaction.  The bottom bit of the address is forced to 1 to indicate a read.

Variables

address8-bit I2C slave address [ addr | 1 ]
dataPointer to the byte-array to read data in to
lengthNumber of bytes to read
repeatedRepeated start, true - don’t send stop at end
returns0 on success (ack), or non-0 on failure (nack)

read

int read(int ack)

Read a single byte from the I2C bus

Variables

ackindicates if the byte is to be acknowledged (1 = acknowledge)
returnsthe byte read

write

int write(int address,  
const char *data,  
int length,  
bool repeated =  false)

Write to an I2C slave

Performs a complete write transaction.  The bottom bit of the address is forced to 0 to indicate a write.

Variables

address8-bit I2C slave address [ addr | 0 ]
dataPointer to the byte-array data to send
lengthNumber of bytes to send
repeatedRepeated start, true - do not send stop at end
returns0 on success (ack), or non-0 on failure (nack)

write

int write(int data)

Write single byte out on the I2C bus

Variables

datadata to write out on bus
returnsa ‘1’ if an ACK was received, a ‘0’ otherwise

start

void start(void)

Creates a start condition on the I2C bus

stop

void stop(void)

Creates a stop condition on the I2C bus

class I2C : public Base
An I2C Master, used for communicating with I2C slave devices
I2C(PinName sda,  
PinName scl,  
const char *name =  NULL)
Create an I2C Master interface, connected to the specified pins
void frequency(int hz)
Set the frequency of the I2C interface
int read(int address,  
char *data,  
int length,  
bool repeated =  false)
Read from an I2C slave
int write(int address,  
const char *data,  
int length,  
bool repeated =  false)
Write to an I2C slave
void start(void)
Creates a start condition on the I2C bus
void stop(void)
Creates a stop condition on the I2C bus