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.  More... | |
| void | frequency (int hz) | 
| Set the frequency of the I2C interface.  More... | |
| void | timeout (uint32_t timeout) | 
| Configure the timeout duration in microseconds for blocking transmission.  More... | |
| int | read (int address, char *data, int length, bool repeated=false) | 
| Read from an I2C slave.  More... | |
| int | read (int ack) | 
| Read a single byte from the I2C bus.  More... | |
| int | write (int address, const char *data, int length, bool repeated=false) | 
| Write to an I2C slave.  More... | |
| int | write (int data) | 
| Write single byte out on the I2C bus.  More... | |
| void | start (void) | 
| Creates a start condition on the I2C bus.  More... | |
| void | stop (void) | 
| Creates a stop condition on the I2C bus.  More... | |
| virtual void | lock (void) | 
| Acquire exclusive access to this I2C bus.  More... | |
| virtual void | unlock (void) | 
| Release exclusive access to this I2C bus.  More... | |
| int | transfer (int address, const char *tx_buffer, int tx_length, char *rx_buffer, int rx_length, const event_callback_t &callback, int event=I2C_EVENT_TRANSFER_COMPLETE, bool repeated=false) | 
| Start nonblocking I2C transfer.  More... | |
| void | abort_transfer () | 
| Abort the ongoing I2C transfer.  More... | |
An I2C Master, used for communicating with I2C slave devices.
Example:
| I2C | ( | PinName | sda, | 
| PinName | scl | ||
| ) | 
| void abort_transfer | ( | ) | 
Abort the ongoing I2C transfer.
| void frequency | ( | int | hz | ) | 
Set the frequency of the I2C interface.
| hz | The bus frequency in hertz | 
| 
 | virtual | 
Acquire exclusive access to this I2C bus.
| 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.
| address | 8-bit I2C slave address [ addr | 1 ] | 
| data | Pointer to the byte-array to read data in to | 
| length | Number of bytes to read | 
| repeated | Repeated start, true - don't send stop at end default value is false. | 
| int read | ( | int | ack | ) | 
Read a single byte from the I2C bus.
| ack | indicates if the byte is to be acknowledged (1 = acknowledge) | 
| void start | ( | void | ) | 
Creates a start condition on the I2C bus.
| void stop | ( | void | ) | 
Creates a stop condition on the I2C bus.
| void timeout | ( | uint32_t | timeout | ) | 
Configure the timeout duration in microseconds for blocking transmission.
| timeout | Transmission timeout in microseconds. | 
| int transfer | ( | int | address, | 
| const char * | tx_buffer, | ||
| int | tx_length, | ||
| char * | rx_buffer, | ||
| int | rx_length, | ||
| const event_callback_t & | callback, | ||
| int | event = I2C_EVENT_TRANSFER_COMPLETE, | ||
| bool | repeated = false | ||
| ) | 
Start nonblocking I2C transfer.
This function locks the deep sleep until any event has occurred
| address | 8/10 bit I2C slave address | 
| tx_buffer | The TX buffer with data to be transferred | 
| tx_length | The length of TX buffer in bytes | 
| rx_buffer | The RX buffer, which is used for received data | 
| rx_length | The length of RX buffer in bytes | 
| event | The logical OR of events to modify | 
| callback | The event callback function | 
| repeated | Repeated start, true - do not send stop at end default value is false. | 
| 
 | virtual | 
Release exclusive access to this I2C bus.
| 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.
| address | 8-bit I2C slave address [ addr | 0 ] | 
| data | Pointer to the byte-array data to send | 
| length | Number of bytes to send | 
| repeated | Repeated start, true - do not send stop at end default value is false. | 
| int write | ( | int | data | ) | 
Write single byte out on the I2C bus.
| data | data to write out on bus |