Equipo7 LabMicros / Mbed 2 deprecated I2C_2B

Dependencies:   mbed

Committer:
micros22eq7
Date:
Mon Apr 25 18:41:10 2022 +0000
Revision:
1:bc94073c58bd
Parent:
0:f1c4da32d334
Child:
2:bdf472bb6179
Conexion entre microcontroladores KL25Z por protocolo de comunicacion I2C. Modulo SLAVE / ESCLAVO.

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
fernando_moraless 0:f1c4da32d334 5 Serial pc(USBTX, USBRX);
fernando_moraless 0:f1c4da32d334 6 I2CSlave slave(I2C_SDA, I2C_SCL);
fernando_moraless 0:f1c4da32d334 7
fernando_moraless 0:f1c4da32d334 8 char addr = 0xA0;
fernando_moraless 0:f1c4da32d334 9
fernando_moraless 0:f1c4da32d334 10 int main()
fernando_moraless 0:f1c4da32d334 11 {
fernando_moraless 0:f1c4da32d334 12 char buf[10];
fernando_moraless 0:f1c4da32d334 13 char msg[] = "Slave!";
micros22eq7 1:bc94073c58bd 14 pc.printf("\x1b[2J"); //CLEAR
micros22eq7 1:bc94073c58bd 15 pc.printf("\r"); //Mueve cursor al origen
micros22eq7 1:bc94073c58bd 16 pc.printf("I'M SLAVE\r\n");
fernando_moraless 0:f1c4da32d334 17
fernando_moraless 0:f1c4da32d334 18 slave.address(addr);
fernando_moraless 0:f1c4da32d334 19 slave.frequency (100000);
fernando_moraless 0:f1c4da32d334 20 pc.printf("SLAVE: %d\r\n",addr);
fernando_moraless 0:f1c4da32d334 21
fernando_moraless 0:f1c4da32d334 22 while (1)
fernando_moraless 0:f1c4da32d334 23 {
fernando_moraless 0:f1c4da32d334 24 int i = slave.receive();
fernando_moraless 0:f1c4da32d334 25 switch (i) {
fernando_moraless 0:f1c4da32d334 26 case I2CSlave::ReadAddressed:
fernando_moraless 0:f1c4da32d334 27 slave.write(msg, strlen(msg) + 1); // Includes null char
fernando_moraless 0:f1c4da32d334 28 break;
fernando_moraless 0:f1c4da32d334 29 case I2CSlave::WriteGeneral:
fernando_moraless 0:f1c4da32d334 30 slave.read(buf, 10);
micros22eq7 1:bc94073c58bd 31 pc.printf("\rRead General: %s\n", buf);
fernando_moraless 0:f1c4da32d334 32 break;
fernando_moraless 0:f1c4da32d334 33 case I2CSlave::WriteAddressed:
fernando_moraless 0:f1c4da32d334 34 slave.read(buf, 10);
micros22eq7 1:bc94073c58bd 35 pc.printf("\rRead Addressed: %s\n", buf);
fernando_moraless 0:f1c4da32d334 36 break;
fernando_moraless 0:f1c4da32d334 37 }
fernando_moraless 0:f1c4da32d334 38 for (int i = 0; i < 10; i++) {
fernando_moraless 0:f1c4da32d334 39 buf[i] = 0; // Clear buffer
fernando_moraless 0:f1c4da32d334 40 }
fernando_moraless 0:f1c4da32d334 41
fernando_moraless 0:f1c4da32d334 42 }
fernando_moraless 0:f1c4da32d334 43 }