我正在建立一个数据记录系统,只是为了娱乐和学习语言。如果我想保存变量" .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();
}
答案 0 :(得分:0)
Arduino附带的库不支持长文件名,它只支持“8个字节用于文件名”。“3个字节用于文件类型”,在你的情况下,它显然超过了这个限制。 这一切都是由于大多数Arduino电路板的内存较小所致。 但如果您仍想继续,可以使用以下库。
https://github.com/greiman/SdFat
这个库支持长文件名,如果我没记错的话,Arduino标准库也是同一作者创建的库的包装。
https://forum.arduino.cc/index.php?topic=58549.msg421288#msg421288
注意:长文件名占用大量内存。