Modification of mbed-src library only for STM32F030F4, very cheap microcontroller in 20-Pin TSSOP package, with 16Kbytes of Flash and 4Kbytes of Ram. **Target for online compilator must be Nucleo 32F030R8.**

Dependents:   STM32F031_blink_LED_2

Embed: (wiki syntax)

« Back to documentation index

I2C Class Reference

I2C Class Reference

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

#include <I2C.h>

Public Member Functions

 I2C (PinName sda, PinName scl)
 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 read (int ack)
 Read a single byte from the I2C bus.
int write (int address, const char *data, int length, bool repeated=false)
 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.

Detailed Description

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);
 }

Definition at line 44 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 24 of file I2C.cpp.


Member Function Documentation

void frequency ( int  hz )

Set the frequency of the I2C interface.

Parameters:
hzThe bus frequency in hertz

Definition at line 32 of file I2C.cpp.

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.

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 64 of file I2C.cpp.

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

Definition at line 73 of file I2C.cpp.

void start ( void   )

Creates a start condition on the I2C bus.

Definition at line 81 of file I2C.cpp.

void stop ( void   )

Creates a stop condition on the I2C bus.

Definition at line 85 of file I2C.cpp.

int write ( int  data )

Write single byte out on the I2C bus.

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

Definition at line 59 of file I2C.cpp.

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.

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 50 of file I2C.cpp.