Jimmy Fang
/
TEST_I2C_Slave_0724
I2C Slave
main.cpp
- Committer:
- jimmy4399
- Date:
- 2019-07-24
- Revision:
- 0:b7bc22a927d4
File content as of revision 0:b7bc22a927d4:
#include <mbed.h> #if !DEVICE_I2CSLAVE #error [NOT_SUPPORTED] I2C Slave is not supported #endif #define SDA P0_11 #define SCL P0_10 I2CSlave slave(SDA, SCL); #define usbtx P0_7 #define usbrx P0_0 Serial pc(usbtx,usbrx); int main() { pc.printf("Ready\n"); char buf[10]; char msg[] = "Slave!"; slave.address(0xA0); while (1) { int i = slave.receive(); switch (i) { case I2CSlave::ReadAddressed: slave.write(msg, strlen(msg) + 1); // Includes null char break; case I2CSlave::WriteGeneral: slave.read(buf, 10); pc.printf("Read G: %s\n", buf); break; case I2CSlave::WriteAddressed: slave.read(buf, 10); pc.printf("Read A: %s\n", buf); break; } for(int i = 0; i < 10; i++) buf[i] = 0; // Clear buffer } }