mbed library sources. Supersedes mbed-src.
Dependents: Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more
I2C Class Reference
[Drivers]
An I2C Master, used for communicating with I2C slave devices. More...
#include <I2C.h>
Inherits NonCopyable< I2C >, and 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 nonblocking I2C transfer. | |
void | abort_transfer () |
Abort the ongoing I2C transfer. | |
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 nonblocking I2C transfer. | |
void | abort_transfer () |
Abort the ongoing 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. | |
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. | |
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 temperature from LM75BD #include "mbed.h" I2C i2c(I2C_SDA , I2C_SCL); const int addr7bit = 0x48; // 7-bit I2C address const int addr8bit = 0x48 << 1; // 8-bit I2C address, 0x90 int main() { char cmd[2]; while (1) { cmd[0] = 0x01; cmd[1] = 0x00; // read and write takes the 8-bit version of the address. // set up configuration register (at 0x01) i2c.write(addr8bit, cmd, 2); wait(0.5); // read temperature register cmd[0] = 0x00; i2c.write(addr8bit, cmd, 1); i2c.read( addr8bit, cmd, 2); float tmp = (float((cmd[0]<<8)|cmd[1]) / 256.0); printf("Temp = %.2f\n", tmp); } }
Definition at line 75 of file cmsis/BUILD/mbed/drivers/I2C.h.
Constructor & Destructor Documentation
I2C | ( | PinName | sda, |
PinName | scl | ||
) |
I2C | ( | PinName | sda, |
PinName | scl | ||
) |
Member Function Documentation
void abort_transfer | ( | void | ) |
void abort_transfer | ( | ) |
Abort the ongoing I2C transfer.
void frequency | ( | int | hz ) |
void frequency | ( | int | hz ) |
Set the frequency of the I2C interface.
- Parameters:
-
hz The bus frequency in hertz
void lock | ( | void | ) | [virtual] |
virtual void lock | ( | void | ) | [virtual] |
Acquire exclusive access to this I2C bus.
void lock_deep_sleep | ( | ) | [protected] |
void lock_deep_sleep | ( | ) | [protected] |
Lock deep sleep only if it is not yet locked.
int read | ( | int | ack ) |
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 default value is false.
- Returns:
- 0 on success (ack), nonzero on failure (nack)
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 default value is false.
- Returns:
- 0 on success (ack), nonzero on failure (nack)
int read | ( | int | ack ) |
Read a single byte from the I2C bus.
- Parameters:
-
ack indicates if the byte is to be acknowledged (1 = acknowledge)
- Returns:
- the byte read
void start | ( | void | ) |
Creates a start condition on the I2C bus.
void start | ( | void | ) |
void stop | ( | void | ) |
Creates a stop condition on the 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 nonblocking I2C transfer.
This function locks the deep sleep until any event has occurred
- Parameters:
-
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.
- Returns:
- Zero if the transfer has started, or -1 if I2C peripheral is busy
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
- Parameters:
-
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.
- Returns:
- Zero if the transfer has started, or -1 if I2C peripheral is busy
void unlock | ( | void | ) | [virtual] |
virtual void unlock | ( | void | ) | [virtual] |
Release exclusive access to this I2C bus.
void unlock_deep_sleep | ( | ) | [protected] |
Unlock deep sleep only if it has been locked.
void unlock_deep_sleep | ( | ) | [protected] |
int write | ( | int | data ) |
Write single byte out on the I2C bus.
- Parameters:
-
data data to write out on bus
- Returns:
- '0' - NAK was received '1' - ACK was received, '2' - timeout
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 default value is false.
- Returns:
- 0 on success (ack), nonzero on failure (nack)
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 default value is false.
- Returns:
- 0 on success (ack), nonzero on failure (nack)
Generated on Tue Jul 12 2022 20:41:17 by 1.7.2