creat files in sd
Dependencies: SDFileSystem mbed
main.cpp
00001 #include "mbed.h" 00002 #include "SDFileSystem.h" 00003 #include <string> 00004 #include <vector> 00005 00006 Serial pc(USBTX, USBRX); 00007 SDFileSystem sd(p5, p6, p7, p8, "sd"); // mosi, miso, sclk, cs, name 00008 Serial xbee(p13, p14); // tx, rx 00009 DigitalOut rst1(p11); 00010 AnalogIn ain(p20); 00011 00012 DigitalOut myled1(LED1); 00013 DigitalOut myled2(LED2); 00014 DigitalOut myled3(LED3); 00015 00016 char fname[64]; 00017 int i=0; 00018 vector<string> filenames; //filenames are stored in a vector string 00019 int fileNumber; 00020 00021 00022 int findNextFile() 00023 { 00024 00025 FILE *fp; 00026 snprintf(fname,64,"/sd/mydir/myFile%04d.txt",fileNumber); // change to match your file name structure 00027 fp = fopen(fname,"r"); 00028 while (fp) { 00029 fclose(fp); 00030 fileNumber++; 00031 fp = fopen(fname,"r"); 00032 } 00033 00034 return fileNumber; 00035 } 00036 00037 void read_file_names(char *dir) 00038 { 00039 DIR *dp; 00040 struct dirent *dirp; 00041 dp = opendir(dir); 00042 //read all directory and file names in current directory into filename vector 00043 while((dirp = readdir(dp)) != NULL) { 00044 filenames.push_back(string(dirp->d_name)); 00045 } 00046 closedir(dp); 00047 } 00048 00049 int main() 00050 { 00051 00052 myled1=1; 00053 myled2=1; 00054 wait_ms(20); 00055 00056 00057 00058 printf("if ther a directory of files in /sd/mydir\n"); 00059 00060 DIR *d; 00061 struct dirent *p; 00062 char array[256]; 00063 d = opendir("/sd/mydir"); 00064 00065 if (d == NULL) { 00066 //error("Could not open directory!"); 00067 mkdir("/sd/mydir", 0777); 00068 printf(" create directory /sd/mydir"); 00069 } else { 00070 while ((p = readdir(d)) != NULL) { 00071 if ((strstr(p->d_name,".txt"))||(strstr(p->d_name,".txt"))) { 00072 printf(" - %s\n\r", p->d_name); 00073 printf("%s\n\r",array); 00074 } 00075 00076 } 00077 } 00078 00079 00080 00081 00082 00083 // read file names into vector of strings 00084 //read_file_names("/sd/mydir"); 00085 // pc.printf(" read_file_names \n\r"); 00086 //sprintf(filename, "/local/analog_%d.txt", x); 00087 //i = findNextFile(); 00088 //FILE *fp = fopen(filename, "w"); 00089 //snprintf(fname, sizeof(fname), "/sd/mydir/sdtest%04d.txt", i); 00090 00091 00092 00093 FILE *fp = fopen("/sd/mydir/fname", "w"); 00094 if(fp == NULL) { 00095 error("Could not open file for write\r\n"); 00096 } 00097 pc.printf("File successfully opned and redy to use!\r\n"); 00098 00099 00100 00101 myled1=0; 00102 myled3=1; 00103 00104 for (int j=0; j<1000; j++) { 00105 fprintf(fp, " Analog in = %d \n",ain.read_u16()); 00106 wait_ms(20); 00107 myled2=0; 00108 } 00109 00110 fclose(fp); 00111 pc.printf(" close file\n\r"); 00112 00113 while (1) { 00114 myled2=0; 00115 wait_ms(200); 00116 myled2=1; 00117 wait_ms(200); 00118 } 00119 00120 00121 } 00122
Generated on Sat Jul 16 2022 01:45:42 by 1.7.2