2台のmbedでI2C通信する

master
mbed LPC1769

#include "mbed.h"

#define sda p28
#define scl p27
#define addr 0x0a

i2c master(sda, scl);
serial pc(usbtx,usbrx);

int main() {
    char buff[2];
    while(1) {
        master.read(addr,buff,2);        
        pc.printf("%d, ",buff[0]);
        pc.printf("%d \n",buff[1]);        
        wait(1);
    }
}

mbed Nucleo F401RE

#include "mbed.h"

#define SDA PB_9
#define SCL PB_8
#define ADDR 0x0A
#define GETCMD 0x03

I2CSlave slave(SDA, SCL);
Serial pc(SERIAL_TX,SERIAL_RX);

int main()
{
    char buff;
    int receive;
    slave.address(ADDR);
    while(1) {
        receive = slave.receive();
        if(receive==I2CSlave::ReadAddressed) {
            char answer[] = {0x07,0x20};
            slave.write(answer,2);
            pc.printf("replied.\n");
        }
    }
}