mraa
2.0.0
Low Level Skeleton Library for Communication on GNU/Linux platforms
|
An I2c object represents an i2c master and can talk multiple i2c slaves by selecting the correct address It is considered best practice to make sure the address is correct before doing any calls on i2c, in case another application or even thread changed the addres on that bus. Multiple instances of the same bus can exist.
Public Member Functions | |
I2c (int bus, bool raw=false) | |
I2c (void *i2c_context) | |
~I2c () | |
Result | frequency (I2cMode mode) |
Result | address (uint8_t address) |
uint8_t | readByte () |
int | read (uint8_t *data, int length) |
uint8_t | readReg (uint8_t reg) |
uint16_t | readWordReg (uint8_t reg) |
int | readBytesReg (uint8_t reg, uint8_t *data, int length) |
Result | writeByte (uint8_t data) |
Result | write (const uint8_t *data, int length) |
Result | writeReg (uint8_t reg, uint8_t data) |
Result | writeWordReg (uint8_t reg, uint16_t data) |
|
inline |
Instantiates an i2c bus. Multiple instances of the same bus can exist and the bus is not guaranteed to be on the correct address before read/write.
bus | The i2c bus to use |
raw | Whether to disable pinmapper for your board |
|
inline |
I2C constructor, takes a pointer to a I2C context and initialises the I2C class
i2c_context | void * to an I2C context |
|
inline |
Closes the I2c Bus used. This does not guarantee the bus will not be usable by anyone else or communicates this disconnect to any slaves.
Sets the i2c Frequency for communication. Your board may not support the set frequency. Anyone can change this at any time and this will affect every slave on the bus
mode | Frequency to set the bus to |
|
inline |
Set the slave to talk to, typically called before every read/write operation
address | Communicate to the i2c slave on this address |
|
inline |
Read exactly one byte from the bus
std::invalid_argument | in case of error |
|
inline |
Read length bytes from the bus into *data pointer
data | Data to read into |
length | Size of read in bytes to make |
|
inline |
Read byte from an i2c register
reg | Register to read from |
std::invalid_argument | in case of error |
|
inline |
Read word from an i2c register
reg | Register to read from |
std::invalid_argument | in case of error |
|
inline |
Read length bytes from the bus into *data pointer starting from an i2c register
reg | Register to read from |
data | pointer to the byte array to read data in to |
length | max number of bytes to read |
|
inline |
Write a byte on the bus
data | The byte to send on the bus |
|
inline |
Write length bytes to the bus, the first byte in the array is the command/register to write
data | Buffer to send on the bus, first byte is i2c command |
length | Size of buffer to send |
|
inline |
Write a byte to an i2c register
reg | Register to write to |
data | Value to write to register |
|
inline |
Write a word to an i2c register
reg | Register to write to |
data | Value to write to register |