NUCLEO I2C SLAVE

Committer:
capriele
Date:
Wed Mar 01 08:07:32 2017 +0000
Revision:
0:9c09b3288b2a
NUCLEO I2C SLAVE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
capriele 0:9c09b3288b2a 1 #include <mbed.h>
capriele 0:9c09b3288b2a 2
capriele 0:9c09b3288b2a 3 I2CSlave slave(D14, D15);
capriele 0:9c09b3288b2a 4
capriele 0:9c09b3288b2a 5 int main() {
capriele 0:9c09b3288b2a 6 slave.frequency(100000); //Set the clock frequency
capriele 0:9c09b3288b2a 7 char buf[1];
capriele 0:9c09b3288b2a 8 char msg[1];
capriele 0:9c09b3288b2a 9 msg[0] = 0x00;
capriele 0:9c09b3288b2a 10 int j = 1;
capriele 0:9c09b3288b2a 11 slave.address(0x07);
capriele 0:9c09b3288b2a 12 while (1) {
capriele 0:9c09b3288b2a 13 int i = slave.receive();
capriele 0:9c09b3288b2a 14 switch (i) {
capriele 0:9c09b3288b2a 15 case I2CSlave::ReadAddressed:
capriele 0:9c09b3288b2a 16 slave.write(msg, strlen(msg) + 1); // Includes null char
capriele 0:9c09b3288b2a 17 break;
capriele 0:9c09b3288b2a 18 case I2CSlave::WriteAddressed:
capriele 0:9c09b3288b2a 19 slave.read(buf, 1);
capriele 0:9c09b3288b2a 20 printf("Read A: %02X\n", buf[0]);
capriele 0:9c09b3288b2a 21 break;
capriele 0:9c09b3288b2a 22 }
capriele 0:9c09b3288b2a 23 buf[0] = 0; // Clear buffer
capriele 0:9c09b3288b2a 24 msg[0] = j;
capriele 0:9c09b3288b2a 25 j++;
capriele 0:9c09b3288b2a 26 }
capriele 0:9c09b3288b2a 27 }