mbed OS-5 I2C Slave using Nucleo-F401RE board.

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 I2CSlave slave(PB_9, PB_8);
00004 
00005 int main() {
00006    char buf[10];
00007    char msg[] = "Slave!";
00008 
00009    slave.address(0x0A);
00010    while (1) {
00011        int i = slave.receive();
00012        switch (i) {
00013            case I2CSlave::ReadAddressed:
00014                slave.write(msg, strlen(msg) + 1); // Includes null char
00015                break;
00016            case I2CSlave::WriteGeneral:
00017                slave.read(buf, 10);
00018                //printf("Read G: %s\n", buf);
00019                break;
00020            case I2CSlave::WriteAddressed:
00021                slave.read(buf, 10);
00022                //printf("Read A: %s\n", buf);
00023                break;
00024        }
00025        for(int i = 0; i < 10; i++) buf[i] = 0;    // Clear buffer
00026    }
00027 }