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

Committer:
jingxizhang
Date:
Mon Aug 22 01:30:24 2016 +0000
Revision:
0:96840f1cc413
Initial commit;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jingxizhang 0:96840f1cc413 1 #include "mbed.h"
jingxizhang 0:96840f1cc413 2
jingxizhang 0:96840f1cc413 3 I2CSlave slave(PB_9, PB_8);
jingxizhang 0:96840f1cc413 4
jingxizhang 0:96840f1cc413 5 int main() {
jingxizhang 0:96840f1cc413 6 char buf[10];
jingxizhang 0:96840f1cc413 7 char msg[] = "Slave!";
jingxizhang 0:96840f1cc413 8
jingxizhang 0:96840f1cc413 9 slave.address(0x0A);
jingxizhang 0:96840f1cc413 10 while (1) {
jingxizhang 0:96840f1cc413 11 int i = slave.receive();
jingxizhang 0:96840f1cc413 12 switch (i) {
jingxizhang 0:96840f1cc413 13 case I2CSlave::ReadAddressed:
jingxizhang 0:96840f1cc413 14 slave.write(msg, strlen(msg) + 1); // Includes null char
jingxizhang 0:96840f1cc413 15 break;
jingxizhang 0:96840f1cc413 16 case I2CSlave::WriteGeneral:
jingxizhang 0:96840f1cc413 17 slave.read(buf, 10);
jingxizhang 0:96840f1cc413 18 //printf("Read G: %s\n", buf);
jingxizhang 0:96840f1cc413 19 break;
jingxizhang 0:96840f1cc413 20 case I2CSlave::WriteAddressed:
jingxizhang 0:96840f1cc413 21 slave.read(buf, 10);
jingxizhang 0:96840f1cc413 22 //printf("Read A: %s\n", buf);
jingxizhang 0:96840f1cc413 23 break;
jingxizhang 0:96840f1cc413 24 }
jingxizhang 0:96840f1cc413 25 for(int i = 0; i < 10; i++) buf[i] = 0; // Clear buffer
jingxizhang 0:96840f1cc413 26 }
jingxizhang 0:96840f1cc413 27 }