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.
Dependents: NervousPuppySprintOne NervousPuppySprint2602 Robot WarehouseBot1 ... more
Fork of mbed by
I2C Class Reference
An I2C Master, used for communicating with I2C slave devices. More...
#include <I2C.h>
Inherits mbed::Base.
| Public Member Functions | |
| I2C (PinName sda, PinName scl, const char *name=NULL) | |
| 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. | |
| void | register_object (const char *name) | 
| Registers this object with the given name, so that it can be looked up with lookup. | |
| const char * | name () | 
| Returns the name of the object. | |
| virtual bool | rpc (const char *method, const char *arguments, char *result) | 
| Call the given method with the given arguments, and write the result into the string pointed to by result. | |
| virtual struct rpc_method * | get_rpc_methods () | 
| Returns a pointer to an array describing the rpc methods supported by this object, terminated by either RPC_METHOD_END or RPC_METHOD_SUPER(Superclass). | |
| Static Public Member Functions | |
| static bool | rpc (const char *name, const char *method, const char *arguments, char *result) | 
| Use the lookup function to lookup an object and, if successful, call its rpc method. | |
| static Base * | lookup (const char *name, unsigned int len) | 
| Lookup and return the object that has the given name. | |
| template<class C > | |
| static void | add_rpc_class () | 
| Add the class to the list of classes which can have static methods called via rpc (the static methods which can be called are defined by that class' get_rpc_class() static method). | |
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 36 of file I2C.h.
Constructor & Destructor Documentation
| I2C | ( | PinName | sda, | 
| PinName | scl, | ||
| const char * | name = NULL | ||
| ) | 
Member Function Documentation
| static void add_rpc_class | ( | ) |  [static, inherited] | 
| void frequency | ( | int | hz ) | 
Set the frequency of the I2C interface.
- Parameters:
- 
  hz The bus frequency in hertz 
| virtual struct rpc_method* get_rpc_methods | ( | ) |  [read, virtual, inherited] | 
Returns a pointer to an array describing the rpc methods supported by this object, terminated by either RPC_METHOD_END or RPC_METHOD_SUPER(Superclass).
Example
class Example : public Base { int foo(int a, int b) { return a + b; } virtual const struct rpc_method *get_rpc_methods() { static const rpc_method rpc_methods[] = { { "foo", generic_caller<int, Example, int, int, &Example::foo> }, RPC_METHOD_SUPER(Base) }; return rpc_methods; } };
Reimplemented in AnalogIn, AnalogOut, BusIn, BusInOut, BusOut, DigitalIn, DigitalInOut, DigitalOut, PwmOut, Serial, SPI, and Timer.
| static Base* lookup | ( | const char * | name, | 
| unsigned int | len | ||
| ) |  [static, inherited] | 
Lookup and return the object that has the given name.
- Parameters:
- 
  name the name to lookup. len the length of name. 
| const char* name | ( | ) |  [inherited] | 
Returns the name of the object.
- Returns:
- The name of the object, or NULL if it has no name.
| 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 ) | 
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 register_object | ( | const char * | name ) |  [inherited] | 
Registers this object with the given name, so that it can be looked up with lookup.
If this object has already been registered, then this just changes the name.
- Parameters:
- 
  name The name to give the object. If NULL we do nothing. 
| virtual bool rpc | ( | const char * | method, | 
| const char * | arguments, | ||
| char * | result | ||
| ) |  [virtual, inherited] | 
Call the given method with the given arguments, and write the result into the string pointed to by result.
The default implementation calls rpc_methods to determine the supported methods.
- Parameters:
- 
  method The name of the method to call. arguments A list of arguments separated by spaces. result A pointer to a string to write the result into. May be NULL, in which case nothing is written. 
- Returns:
- true if method corresponds to a valid rpc method, or false otherwise.
| static bool rpc | ( | const char * | name, | 
| const char * | method, | ||
| const char * | arguments, | ||
| char * | result | ||
| ) |  [static, inherited] | 
Use the lookup function to lookup an object and, if successful, call its rpc method.
- Returns:
- false if name does not correspond to an object, otherwise the return value of the call to the object's rpc method.
| void start | ( | void | ) | 
Creates a start condition on the I2C bus.
| void stop | ( | void | ) | 
Creates a stop condition on the 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.
- 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)
| int write | ( | int | data ) | 
Write single byte out on the I2C bus.
- Parameters:
- 
  data data to write out on bus 
- Returns:
- '1' if an ACK was received, '0' otherwise
Generated on Tue Jul 12 2022 11:27:31 by
 1.7.2
 1.7.2 
    