Modified I2C api to work with NRF's dynamic pin asignment.

Dependents:   Seed_Barometer_Sensor_custom_I2C_lib

Embed: (wiki syntax)

« Back to documentation index

I2CX Class Reference

I2CX Class Reference

An I2C Master, used for communicating with I2C slave devices. More...

#include <I2CX.h>

Public Member Functions

 I2CX (I2CName peripheral, PinName sda, PinName scl)
 Create an I2CX Master interface, connected to the specified pins.
void frequency (int hz)
 Set the frequency of the I2CX interface.
int read (int address, char *data, int length, bool repeated=false)
 Read from an I2CX slave.
int read (int ack)
 Read a single byte from the I2CX bus.
int write (int address, const char *data, int length, bool repeated=false)
 Write to an I2CX slave.
int write (int data)
 Write single byte out on the I2CX bus.
void start (void)
 Creates a start condition on the I2CX bus.
void stop (void)
 Creates a stop condition on the I2CX bus.

Detailed Description

An I2C Master, used for communicating with I2C slave devices.

Example:

 // Read from I2C slave at address 0x62
  
 #include "mbed.h"
 #include "I2CX.h"
  
 I2CX i2c(I2C_0, p28, p27);
  
 int main() {
     int address = 0x62;
     char data[2];
     i2c.read(address, data, 2);
 }

Definition at line 45 of file I2CX.h.


Constructor & Destructor Documentation

I2CX ( I2CName  peripheral,
PinName  sda,
PinName  scl 
)

Create an I2CX Master interface, connected to the specified pins.

Parameters:
sdaI2CX data line pin
sclI2CX clock line pin

Definition at line 24 of file I2CX.cpp.


Member Function Documentation

void frequency ( int  hz )

Set the frequency of the I2CX interface.

Parameters:
hzThe bus frequency in hertz

Definition at line 46 of file I2CX.cpp.

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

Read from an I2CX slave.

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

Parameters:
address8-bit I2CX 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
Returns:
0 on success (ack), non-0 on failure (nack)

Definition at line 78 of file I2CX.cpp.

int read ( int  ack )

Read a single byte from the I2CX bus.

Parameters:
ackindicates if the byte is to be acknowledged (1 = acknowledge)
Returns:
the byte read

Definition at line 87 of file I2CX.cpp.

void start ( void   )

Creates a start condition on the I2CX bus.

Definition at line 95 of file I2CX.cpp.

void stop ( void   )

Creates a stop condition on the I2CX bus.

Definition at line 99 of file I2CX.cpp.

int write ( int  data )

Write single byte out on the I2CX bus.

Parameters:
datadata to write out on bus
Returns:
'1' if an ACK was received, '0' otherwise

Definition at line 73 of file I2CX.cpp.

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

Write to an I2CX slave.

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

Parameters:
address8-bit I2CX 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
Returns:
0 on success (ack), non-0 on failure (nack)

Definition at line 64 of file I2CX.cpp.