A library that maps the functions used with the mbed microcontroller to be used on with the GPIO ports of a Raspberry pi.

Embed: (wiki syntax)

« Back to documentation index

I2C Class Reference

I2C Class Reference

The I2C interface provides I2C Master functionality. More...

#include <I2C.h>

Inherits CPPToPigpio::CPPToPigpio.

Public Member Functions

 I2C (PinName sda, PinName scl)
 Create an I2C Master interface, connected to the specified pins.
 I2C (int sda, int scl)
 Create an I2C Master interface, connected to the specified pins.
void frequency (int hz)
 Set the frequency of the I2C clock frequency for bit banging.
int read (unsigned address, char *buf, int length, bool repeated)
 Read from an I2C slave.
int read (int ack)
 Read a single byte from the I2C bus.
int write (unsigned address, char *buf, int length, bool repeated)
 Write to an I2C slave.
int write (int data)
 Write single byte out on the I2C bus.
void start (void)
 Creates a start condition on the I2C bus.
void stop (void)
 Creates a stop condition on the I2C bus.
int bang (char *inBuf, unsigned inLen, char *outBuf, unsigned outLen, bool cont)
 Allows construction of arbitrary I2C command.

Detailed Description

The I2C interface provides I2C Master functionality.

Definition at line 7 of file I2C.h.


Constructor & Destructor Documentation

I2C ( PinName  sda,
PinName  scl 
)

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

Parameters:
sdaI2C data line pin
sclI2C clock line pin

Definition at line 4 of file I2C.cc.

I2C ( int  sda,
int  scl 
)

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

Parameters:
sdaI2C data line pin
sclI2C clock line pin

Definition at line 26 of file I2C.cc.


Member Function Documentation

int bang ( char *  inBuf,
unsigned  inLen,
char *  outBuf,
unsigned  outLen,
bool  cont = false 
)

Allows construction of arbitrary I2C command.

Basically a wrapper for pigpio's bbi2cZip

Parameters:
dataPointer to the byte-array to read data in to
lengthNumber of bytes to read
dataPointer to the byte-array data to send
lengthNumber of bytes to send
repeatedRepeated start, true - do not send stop at end

Definition at line 125 of file I2C.cc.

void frequency ( int  hz )

Set the frequency of the I2C clock frequency for bit banging.

Parameters:
hzThe bus frequency in hertz

Definition at line 33 of file I2C.cc.

int read ( int  ack )

Read a single byte from the I2C bus.

Parameters:
ackindicates if the byte is to be acknowledged (1 = acknowledge)
Returns:
the byte read
int read ( unsigned  address,
char *  buf,
int  length,
bool  repeated = false 
)

Read from an I2C slave.

Performs a complete read transaction. Read "length" bytes from device at "address" into "buf". The bottom bit of the address is forced to 1 to indicate a read.

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

Definition at line 37 of file I2C.cc.

void start ( void   )

Creates a start condition on the I2C bus.

Definition at line 103 of file I2C.cc.

void stop ( void   )

Creates a stop condition on the I2C bus.

Definition at line 113 of file I2C.cc.

int write ( unsigned  address,
char *  buf,
int  length,
bool  repeated = false 
)

Write to an I2C slave.

Performs a complete write transaction. Write "length" bytes from buf to device at "address". The bottom bit of the address is forced to 0 to indicate a write.

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

Definition at line 63 of file I2C.cc.

int write ( int  data )

Write single byte out on the I2C bus.

Parameters:
datadata to write out on bus
Returns:
'0' - NAK was received '1' - ACK was received, '2' - timeout

Definition at line 84 of file I2C.cc.