Go Down

Topic: "file open error"when using Sdfat.h to creat a file and log some data (Read 594 times) previous topic - next topic


hi,I am totally a newer of arduino , I want to log data to SDcard. After several days' study ,I know that the SdFat library may be a good choice. then I copied some codes from website and modified them and  begin my work. these codes modified are as below:

#include <TimerOne.h>
#include <SoftwareSerial.h>
#include <SPI.h>
#include <SdFat.h>

SdFat SD;
SdFile myFile;

void setup() {

   pinMode(10, OUTPUT);
   digitalWrite(10, HIGH);

   Serial.println("Initializing SD card...");   
   if (!SD.begin(10, SPI_HALF_SPEED)) { Serial.println("initialization failed!");return; }
   Serial.println("initialization done.");   


void loop() {
   int ts = 2000;

      sprintf(filename2, "%0d", fileindex);
      strcat(filename2, ".txt");
      fileindex = fileindex + 1;

void filerecord()


   myFile = SD.open(filename2, O_WRITE | O_CREAT | O_AT_END);
   if (!myFile) { Serial.print("file open error!");}
   Serial.print("Writing to test.txt...");
   myFile.println("test,test,test,I just want to do test,GOD help me!");

these above are the SD operation parts of my code ,it does not work , even worse ,it stopped other parts of my codes from working ,I donot know why .

I am not really know the usage of "SdFat SD;" or "SdFile myFile;", I donot know much about the difference between  "SdFile myFile;" and "File myFile;", it seems both of them are OK in VS2017, no warning ,no error ,compling succeed, but neither of them work.

I once succeed , i.e. the SD file creation operation had experienced some success(otherwise I may giveup , wonot come to the forum for help), after my stupid modification , it turned bad. I can not find where I badly modified . 

These codes are parts of my codes ,I carefully copied to here , to ensure offering enough information to everyone to help me .  Were the whole codes necessary , I will post all of them here . thank you !


besides , for my instance , somewhere I see :

SdFat SD;
myFile = SD.open(filename2, O_WRITE | O_CREAT | O_AT_END);

and ,otherwise I see:

SdFile myFile;
myFile.open(filename2, O_WRITE | O_CREAT | O_AT_END);

are they absolutely the same ?  are they all right usage ?

Go Up