Fernando Morales / Mbed 2 deprecated I2C_SLAVE

Dependencies:   mbed

Committer:
fernando_moraless
Date:
Mon Apr 25 05:48:45 2022 +0000
Revision:
0:f1c4da32d334
SLAVE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fernando_moraless 0:f1c4da32d334 1 /*
fernando_moraless 0:f1c4da32d334 2 * Copyright (c) 2006-2020 Arm Limited and affiliates.
fernando_moraless 0:f1c4da32d334 3 * SPDX-License-Identifier: Apache-2.0
fernando_moraless 0:f1c4da32d334 4 */
fernando_moraless 0:f1c4da32d334 5 #include <mbed.h>
fernando_moraless 0:f1c4da32d334 6
fernando_moraless 0:f1c4da32d334 7 Serial pc(USBTX, USBRX);
fernando_moraless 0:f1c4da32d334 8
fernando_moraless 0:f1c4da32d334 9 I2CSlave slave(I2C_SDA, I2C_SCL);
fernando_moraless 0:f1c4da32d334 10
fernando_moraless 0:f1c4da32d334 11 char addr = 0xA0;
fernando_moraless 0:f1c4da32d334 12
fernando_moraless 0:f1c4da32d334 13 int main()
fernando_moraless 0:f1c4da32d334 14 {
fernando_moraless 0:f1c4da32d334 15 char buf[10];
fernando_moraless 0:f1c4da32d334 16 char msg[] = "Slave!";
fernando_moraless 0:f1c4da32d334 17 pc.printf("\x1b[2J"); //CLEAR
fernando_moraless 0:f1c4da32d334 18 pc.printf("\r"); //Mueve cursor al origen
fernando_moraless 0:f1c4da32d334 19 pc.printf("SLAVE\r\n");
fernando_moraless 0:f1c4da32d334 20
fernando_moraless 0:f1c4da32d334 21 slave.address(addr);
fernando_moraless 0:f1c4da32d334 22 slave.frequency (100000);
fernando_moraless 0:f1c4da32d334 23 pc.printf("SLAVE: %d\r\n",addr);
fernando_moraless 0:f1c4da32d334 24
fernando_moraless 0:f1c4da32d334 25 while (1)
fernando_moraless 0:f1c4da32d334 26 {
fernando_moraless 0:f1c4da32d334 27 int i = slave.receive();
fernando_moraless 0:f1c4da32d334 28 switch (i) {
fernando_moraless 0:f1c4da32d334 29 case I2CSlave::ReadAddressed:
fernando_moraless 0:f1c4da32d334 30 slave.write(msg, strlen(msg) + 1); // Includes null char
fernando_moraless 0:f1c4da32d334 31 break;
fernando_moraless 0:f1c4da32d334 32 case I2CSlave::WriteGeneral:
fernando_moraless 0:f1c4da32d334 33 slave.read(buf, 10);
fernando_moraless 0:f1c4da32d334 34 printf("Read G: %s\n", buf);
fernando_moraless 0:f1c4da32d334 35 break;
fernando_moraless 0:f1c4da32d334 36 case I2CSlave::WriteAddressed:
fernando_moraless 0:f1c4da32d334 37 slave.read(buf, 10);
fernando_moraless 0:f1c4da32d334 38 printf("Read A: %s\n", buf);
fernando_moraless 0:f1c4da32d334 39 break;
fernando_moraless 0:f1c4da32d334 40 }
fernando_moraless 0:f1c4da32d334 41 for (int i = 0; i < 10; i++) {
fernando_moraless 0:f1c4da32d334 42 buf[i] = 0; // Clear buffer
fernando_moraless 0:f1c4da32d334 43 }
fernando_moraless 0:f1c4da32d334 44
fernando_moraless 0:f1c4da32d334 45 }
fernando_moraless 0:f1c4da32d334 46 }