An example program for the S25FL216K flash memory

Dependencies:   S25FL216K_FATFileSystem mbed

Fork of S25FL216K_HelloWorld by Erik -

Revision:
1:e8698224bb08
Parent:
0:5e431050adf7
Child:
3:321618d7c9a5
--- a/main.cpp	Wed Jul 31 19:21:41 2013 +0000
+++ b/main.cpp	Fri Aug 02 19:01:53 2013 +0000
@@ -7,7 +7,7 @@
 void usbCallback(bool available)
 {
     if (available) {
-        FILE *fp = fopen("/USB/usbtest.txt", "r");
+        FILE *fp = fopen("/USB/in.txt", "r");
         char buffer[100];
         fgets (buffer, 100, fp);
         printf("%s\r\n", buffer);
@@ -22,11 +22,12 @@
     wait(0.1);
     printf("Hello World!\r\n");
 
-    FILE *fp = fopen("/USB/usbtest.txt", "w");
+    FILE *fp = fopen("/USB/in.txt", "w");
 
     if(fp == NULL) {
         printf("Could not open file, assuming unformatted disk!\r\n");
         printf("Click in the nice popup window to format disk with default settings!\r\n");
+        while(1);
     } else {
         wait(0.2);
         fprintf(fp, "Type your text here!");
@@ -35,9 +36,24 @@
 
     //Connect USB
     flash.connect();
+    flash.usbMode(1);       //Disconnect USB when files are locally written
+    
+    char buffer[101];
+    printf("Type your text here! (100 max length)\n");
     while(1) {
-        wait(0.2);
+        gets(buffer);
         myled = !myled;
+        
+        //Open file for write, keep trying until we succeed
+        //This is needed because if USB happens to be writing it will fail
+        while(1) {
+            fp = fopen("/USB/out.txt", "w");
+            if (fp != NULL)
+                break;
+            }
+        fprintf(fp, buffer);
+        fclose(fp);
+        
     }
 
 }