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"); } } }