NUCLEO I2C SLAVE

main.cpp

Committer:
capriele
Date:
2017-03-01
Revision:
0:9c09b3288b2a

File content as of revision 0:9c09b3288b2a:

#include <mbed.h>

I2CSlave slave(D14, D15);

int main() {
   slave.frequency(100000); //Set the clock frequency
   char buf[1];
   char msg[1];
   msg[0] = 0x00;
   int j = 1;
   slave.address(0x07);
   while (1) {
       int i = slave.receive();
       switch (i) {
           case I2CSlave::ReadAddressed:
               slave.write(msg, strlen(msg) + 1); // Includes null char
               break;
           case I2CSlave::WriteAddressed:
               slave.read(buf, 1);
               printf("Read A: %02X\n", buf[0]);
               break;
       }
       buf[0] = 0;    // Clear buffer
       msg[0] = j;
       j++;
   }
}