Equipo7 LabMicros / Mbed 2 deprecated I2C_2B

Dependencies:   mbed

Committer:
micros22eq7
Date:
Tue Apr 26 04:41:15 2022 +0000
Revision:
2:bdf472bb6179
Parent:
1:bc94073c58bd
Child:
3:edb0044a1052
v3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
micros22eq7 1:bc94073c58bd 1 //CÓDIGO 2-B
micros22eq7 1:bc94073c58bd 2
fernando_moraless 0:f1c4da32d334 3 #include <mbed.h>
fernando_moraless 0:f1c4da32d334 4
micros22eq7 2:bdf472bb6179 5 Serial pc(USBTX, USBRX);
micros22eq7 2:bdf472bb6179 6
fernando_moraless 0:f1c4da32d334 7 I2CSlave slave(I2C_SDA, I2C_SCL);
fernando_moraless 0:f1c4da32d334 8
fernando_moraless 0:f1c4da32d334 9 char addr = 0xA0;
fernando_moraless 0:f1c4da32d334 10
fernando_moraless 0:f1c4da32d334 11 int main()
fernando_moraless 0:f1c4da32d334 12 {
micros22eq7 2:bdf472bb6179 13 char buf[30];
micros22eq7 2:bdf472bb6179 14 char msg[] = "Respuesta de Slave";
micros22eq7 2:bdf472bb6179 15 //pc.printf("\033[1;1H"); //Mueve cursor al origen
micros22eq7 2:bdf472bb6179 16 pc.printf("\r");
micros22eq7 1:bc94073c58bd 17 pc.printf("I'M SLAVE\r\n");
micros22eq7 2:bdf472bb6179 18
fernando_moraless 0:f1c4da32d334 19 slave.address(addr);
fernando_moraless 0:f1c4da32d334 20 slave.frequency (100000);
micros22eq7 2:bdf472bb6179 21 pc.printf("SLAVE ID: %d\r\n",addr);
micros22eq7 2:bdf472bb6179 22
micros22eq7 2:bdf472bb6179 23 while (1)
fernando_moraless 0:f1c4da32d334 24 {
fernando_moraless 0:f1c4da32d334 25 int i = slave.receive();
fernando_moraless 0:f1c4da32d334 26 switch (i) {
fernando_moraless 0:f1c4da32d334 27 case I2CSlave::ReadAddressed:
fernando_moraless 0:f1c4da32d334 28 slave.write(msg, strlen(msg) + 1); // Includes null char
micros22eq7 2:bdf472bb6179 29 NVIC_SystemReset();
fernando_moraless 0:f1c4da32d334 30 break;
fernando_moraless 0:f1c4da32d334 31 case I2CSlave::WriteGeneral:
micros22eq7 2:bdf472bb6179 32 slave.read(buf, 30);
micros22eq7 2:bdf472bb6179 33 printf("Read General: %s\n", buf);
fernando_moraless 0:f1c4da32d334 34 break;
fernando_moraless 0:f1c4da32d334 35 case I2CSlave::WriteAddressed:
micros22eq7 2:bdf472bb6179 36 slave.read(buf, 30);
micros22eq7 2:bdf472bb6179 37 printf("Read Addressed: %s\n", buf);
fernando_moraless 0:f1c4da32d334 38 break;
fernando_moraless 0:f1c4da32d334 39 }
micros22eq7 2:bdf472bb6179 40 for (int i = 0; i < 30; i++) {
fernando_moraless 0:f1c4da32d334 41 buf[i] = 0; // Clear buffer
fernando_moraless 0:f1c4da32d334 42 }
fernando_moraless 0:f1c4da32d334 43 }
fernando_moraless 0:f1c4da32d334 44 }