api / mbed / trunk / I2CSlave
I2CSlave
class I2CSlave : public Base
An I2C Slave, used for communicating with an I2C Master device
Example
// Simple I2C responder
#include <mbed.h>
I2CSlave slave(p9, p10);
int main() {
char buf[10];
char msg[] = "Slave!";
slave.address(0xA0);
while (1) {
int i = slave.receive();
switch (i) {
case I2CSlave::ReadAddressed:
slave.write(msg, strlen(msg) + 1); // Includes null char
break;
case I2CSlave::WriteGeneral:
slave.read(buf, 10);
printf("Read G: %s\n", buf);
break;
case I2CSlave::WriteAddressed:
slave.read(buf, 10);
printf("Read A: %s\n", buf);
break;
}
for(int i = 0; i < 10; i++) buf[i] = 0; // Clear buffer
}
}| I2CSlave | An I2C Slave, used for communicating with an I2C Master device |
| Functions | |
| I2CSlave | Create an I2C Slave interface, connected to the specified pins. |
| frequency | Set the frequency of the I2C interface |
| receive | Checks to see if this I2C Slave has been addressed. |
| read | Read from an I2C master. |
| read | Read a single byte from an I2C master. |
| write | Write to an I2C master. |
| write | Write a single byte to an I2C master. |
| address | Sets the I2C slave address. |
| stop | Reset the I2C slave back into the known ready receiving state. |
receive
int receive( void )
Checks to see if this I2C Slave has been addressed.
Variables
| returns | a status indicating if the device has been addressed, and how |
NoData - the slave has not been addressed ReadAddressed - the master has requested a read from this slave WriteAddressed - the master is writing to this slave WriteGeneral - the master is writing to all slave
An I2C Slave, used for communicating with an I2C Master device
class I2CSlave : public Base
Create an I2C Slave interface, connected to the specified pins.
I2CSlave( PinName sda, PinName scl, const char * name = NULL )
Set the frequency of the I2C interface
void frequency( int hz )
Checks to see if this I2C Slave has been addressed.
int receive( void )
Read from an I2C master.
int read( char * data, int length )
Write to an I2C master.
int write( const char * data, int length )
Sets the I2C slave address.
void address( int address )
Reset the I2C slave back into the known ready receiving state.
void stop( void )
