V1

Fork of 446STM32_Print_PC_I2CS by Hsieh JenYun

Revision:
0:8be7c91879df
Child:
1:51fb8c086992
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Nov 01 07:19:20 2017 +0000
@@ -0,0 +1,43 @@
+#include "mbed.h"
+
+DigitalOut myled(LED1);
+Serial pc(USBTX, USBRX);
+I2CSlave slave(PC_9, PA_8);
+
+int main() {
+    char buffer[128];
+      char all_buf[]="i'm here!";
+   char buf[20];
+   char msg[] = "Hi Master!";
+   slave.address(0xA0);
+
+    while(1){ 
+        if(pc.readable()) {  
+            slave.stop();
+            pc.gets(buffer, 128);
+            pc.printf("I got '%s'\n", buffer);
+        }
+        int i = slave.receive();
+       switch (i) {
+           case I2CSlave::ReadAddressed:
+               if(!slave.write(msg, strlen(msg) + 1)) // Includes null char
+                slave.stop();
+                printf("ReadAddressed\n");
+                //slave.stop();
+               break;
+           case I2CSlave::WriteGeneral:
+               if(!slave.write(all_buf, strlen(all_buf) + 1)) // Includes null char
+                slave.stop();
+                printf("i've received the command...\n");
+               break;
+           case I2CSlave::WriteAddressed:
+               slave.read(buf, 20);
+               //slave.stop();
+               printf("master write to A: %s\n", buf);
+               break;
+       }
+       for(int i = 0; i < 10; i++) {
+           buf[i] = 0;    // Clear buffer
+           }
+    }
+}
\ No newline at end of file