Arduino并将文件写入SD

时间:2014-05-26 19:04:15

标签: arduino

我有以下代码

全球

File logFile

和内部循环()

DateTime now = rtc.now();
String stringFilename = "";
stringFilename = String(now.year())+"_"+String(now.month())+"_"+String(now.day());
stringFilename += ".csv";
Serial.println(stringFilename);
char filename[stringFilename.length() + 1];
stringFilename.toCharArray(filename, sizeof(filename));
String dataString = "";
dataString += String(now.year());
Serial.print("Filename: ");
Serial.println(filename);
if (!SD.exists(filename)){
  Serial.println("File does not exist");
  logFile = SD.open(filename, FILE_WRITE);
}
if (logFile){
    logFile.println(dataString);
}else{
    Serial.println("Could not open file");
}

文件名类似于2014_5_26.csv。 SD空了。上面的代码不会打开文件进行写入。如果我用像“datalog.txt”这样的文字替换filename,它就可以了。我做错了什么?

编辑:我得到了我的问题。这个名字很长。它最多只能包含8个字符。我能问一些不同的东西吗?我可以在循环中调用SD.begin(chipSelect)来确定SD是否存在或是否始终在设置时调用?

2 个答案:

答案 0 :(得分:0)

您可以在循环中使用它,但程序速度会降低。 不要忘记关闭文件(SD.close()),以确保您的数据正确写入SD卡

答案 1 :(得分:0)

8.3文件名规则可能适用。您的日期派生(“2014_5_26”)文件名似乎有9个字符。当你使用“数据记录”时,它有8个字符,它可以工作。