Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
I2C Class Reference
[Drivers]
An I2C Master, used for communicating with I2C slave devices. More...
#include <I2C.h>
Inherits NonCopyable< I2C >.
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. | |
virtual void | lock (void) |
Acquire exclusive access to this I2C bus. | |
virtual void | unlock (void) |
Release exclusive access to this I2C bus. | |
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 non-blocking I2C transfer. | |
void | abort_transfer () |
Abort the on-going I2C transfer. | |
Protected Member Functions | |
void | lock_deep_sleep () |
Lock deep sleep only if it is not yet locked. | |
void | unlock_deep_sleep () |
Unlock deep sleep only if it has been locked. | |
Private Member Functions | |
MBED_DEPRECATED ("Invalid copy construction of a NonCopyable resource.") NonCopyable(const NonCopyable &) | |
NonCopyable copy constructor. | |
MBED_DEPRECATED ("Invalid copy assignment of a NonCopyable resource.") NonCopyable &operator | |
NonCopyable copy assignment operator. |
Detailed Description
An I2C Master, used for communicating with I2C slave devices.
- Note:
- Synchronization level: Thread safe
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 57 of file I2C.h.
Constructor & Destructor Documentation
I2C | ( | PinName | sda, |
PinName | scl | ||
) |
Member Function Documentation
void abort_transfer | ( | void | ) |
void frequency | ( | int | hz ) |
void lock | ( | void | ) | [virtual] |
void lock_deep_sleep | ( | ) | [protected] |
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:
-
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
- Returns:
- 0 on success (ack), non-0 on failure (nack)
int read | ( | int | ack ) |
void start | ( | void | ) |
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 non-blocking I2C transfer.
This function locks the deep sleep until any event has occured
- Parameters:
-
address 8/10 bit I2c slave address tx_buffer The TX buffer with data to be transfered 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
- Returns:
- Zero if the transfer has started, or -1 if I2C peripheral is busy
void unlock | ( | void | ) | [virtual] |
void unlock_deep_sleep | ( | ) | [protected] |
int write | ( | int | data ) |
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:
-
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
- Returns:
- 0 on success (ack), non-0 on failure (nack)
Generated on Tue Jul 12 2022 13:33:20 by
