Arduino SD卡上文件的文件名不会保存

时间:2018-02-10 11:14:41

标签: arduino

我正在建立一个数据记录系统,只是为了娱乐和学习语言。如果我想保存变量" .txt"文件与INT它工作正常。现在我买了一个RTC,我希望名称如下:"数据_'日期&时间' .txt"。

正如你在下面的代码中看到的,我创建了一个函数newFileName应该做什么,但我的输出也在下面。在SD卡上甚至没有任何保存。

评论中的内容是我尝试的内容。

int CURRENT_FILE        = 1;
String dataString       = "";
String currentFileName  = "";
String currentTimeStamp = "";

void setDatumTijd(){
  t = rtc.getTime();
  currentTimeStamp = rtc.getDateStr();
  currentTimeStamp += "--"; 
  currentTimeStamp += rtc.getTimeStr();
  currentTimeStamp.replace(':', '.');
  delay(50);
}

void makeNewFile(String currentTimeStamp){
  char fileName[50];
  char timeStamp[20];
 // sprintf(timeStamp, currentTimeStamp.c_str());
  sprintf(fileName, "Data_%d.txt", currentTimeStamp.c_str());
  //currentFileName = fileName;
  //currentFileName.toCharArray(fileName,50);
  //currentTimeStamp += ".txt";
  //currentTimeStamp.toCharArray(fileName, (currentTimeStamp.length()+1));
  Serial.println(fileName);
  currentFileName = fileName;
  File dataFile = SD.open(fileName, FILE_WRITE);
  saveHeader(currentFileName, currentTimeStamp);
  dataFile.close();
}

enter image description here

1 个答案:

答案 0 :(得分:0)

Arduino附带的库不支持长文件名,它只支持“8个字节用于文件名”。“3个字节用于文件类型”,在你的情况下,它显然超过了这个限制。 这一切都是由于大多数Arduino电路板的内存较小所致。 但如果您仍想继续,可以使用以下库。

https://github.com/greiman/SdFat

这个库支持长文件名,如果我没记错的话,Arduino标准库也是同一作者创建的库的包装。

https://forum.arduino.cc/index.php?topic=58549.msg421288#msg421288

注意:长文件名占用大量内存。