V1

Fork of 446STM32_Print_PC_I2CS by Hsieh JenYun

Revision:
3:4d977dd77a4b
Parent:
2:764981c589b6
--- a/main.cpp	Mon Nov 06 08:23:22 2017 +0000
+++ b/main.cpp	Fri Nov 10 05:08:18 2017 +0000
@@ -3,21 +3,28 @@
 DigitalOut myled(LED1);
 Serial pc(USBTX, USBRX);
 I2CSlave slave(PC_9, PA_8);
+void boxslave();
 
 int main() {
     char buffer[128];
-      char all_buf[]="i'm here!";
-   char buf[20];
-   char msg[] = "Hi Master!";
-   slave.address(0xA0);
+    slave.address(0xA0);
 
     while(1){ 
+        boxslave();
+       
         if(pc.readable()) {  
-            slave.stop();
+            //slave.stop();
             pc.gets(buffer, 128);
             pc.printf("I got '%s'\n", buffer);
+            //slave.stop();
         }
-        int i = slave.receive();
+    }
+}
+void boxslave(){
+    char buf[20];
+    char msg[] = "Hi Master!";
+    char all_buf[]="i'm here!";
+     int i = slave.receive();
        switch (i) {
            case I2CSlave::ReadAddressed:
                if(!slave.write(msg, strlen(msg) + 1)) // Includes null char
@@ -32,12 +39,10 @@
                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