PSTL - Robot Mobile / Mbed 2 deprecated Nucleo_i2c_slave

Dependencies:   mbed

Committer:
rodrigogenes
Date:
Mon Feb 27 12:45:08 2017 +0000
Revision:
0:bdd449e55907
Child:
1:f77859e74071
I2C Communication

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rodrigogenes 0:bdd449e55907 1 // Simple I2C responder
rodrigogenes 0:bdd449e55907 2 #include <mbed.h>
rodrigogenes 0:bdd449e55907 3
rodrigogenes 0:bdd449e55907 4
rodrigogenes 0:bdd449e55907 5
rodrigogenes 0:bdd449e55907 6 I2CSlave slave(D14, D15);
rodrigogenes 0:bdd449e55907 7
rodrigogenes 0:bdd449e55907 8 int main() {
rodrigogenes 0:bdd449e55907 9
rodrigogenes 0:bdd449e55907 10 DigitalOut myLED (LED2);
rodrigogenes 0:bdd449e55907 11
rodrigogenes 0:bdd449e55907 12
rodrigogenes 0:bdd449e55907 13
rodrigogenes 0:bdd449e55907 14
rodrigogenes 0:bdd449e55907 15 slave.address(0x14);
rodrigogenes 0:bdd449e55907 16
rodrigogenes 0:bdd449e55907 17
rodrigogenes 0:bdd449e55907 18
rodrigogenes 0:bdd449e55907 19 char buf[10];
rodrigogenes 0:bdd449e55907 20
rodrigogenes 0:bdd449e55907 21
rodrigogenes 0:bdd449e55907 22
rodrigogenes 0:bdd449e55907 23
rodrigogenes 0:bdd449e55907 24 while (1) {
rodrigogenes 0:bdd449e55907 25 int i = slave.receive();
rodrigogenes 0:bdd449e55907 26 switch (i) {
rodrigogenes 0:bdd449e55907 27 // case I2CSlave::ReadAddressed:
rodrigogenes 0:bdd449e55907 28
rodrigogenes 0:bdd449e55907 29 // slave.write(5); // Includes null char
rodrigogenes 0:bdd449e55907 30
rodrigogenes 0:bdd449e55907 31 // myLED=0;
rodrigogenes 0:bdd449e55907 32 // break;
rodrigogenes 0:bdd449e55907 33 //case I2CSlave::WriteGeneral:
rodrigogenes 0:bdd449e55907 34
rodrigogenes 0:bdd449e55907 35 //to implement
rodrigogenes 0:bdd449e55907 36 case I2CSlave::WriteAddressed:
rodrigogenes 0:bdd449e55907 37
rodrigogenes 0:bdd449e55907 38 slave.read(buf, 10);
rodrigogenes 0:bdd449e55907 39
rodrigogenes 0:bdd449e55907 40 if (buf ==1){
rodrigogenes 0:bdd449e55907 41 myLED=1;
rodrigogenes 0:bdd449e55907 42 }
rodrigogenes 0:bdd449e55907 43
rodrigogenes 0:bdd449e55907 44 break;
rodrigogenes 0:bdd449e55907 45 }
rodrigogenes 0:bdd449e55907 46 for(int i = 0; i < 10; i++) buf[i] = 0; // Clear buffer
rodrigogenes 0:bdd449e55907 47 }
rodrigogenes 0:bdd449e55907 48 }