我想一次将我的数据记录在我的Arduino文件中。我希望文件名是传递的毫秒数+一些ID的组合。例如,GPS数据将是millis()+“GPS”。
我尝试了以下代码,但它不喜欢我使用String
的事实。我可以使用char数组,但长度总是动态的。有没有办法用字符串以某种方式执行此操作?
static void writeToSD()
{
String logEntry = " GPS: ";
logEntry += GPSString;
String filename = String(millis());
filename += "GPS";
Serial.println(logEntry);
Serial.println(filename);
File dataFile = SD.open(filename, FILE_WRITE);
// If the file is available, write to it:
if (dataFile) {
dataFile.println(logEntry);
dataFile.close();
Serial.println("Closed");
}
// If the file isn't open, pop up an error:
else {
Serial.println("error opening file");
}
}
答案 0 :(得分:1)
您可以尝试以下
char fileNameCharArray[filename.length()];
filename.toCharArray(fileNameCharArray, filename.length())
File dataFile = SD.open(fileNameCharArray, FILE_WRITE);
答案 1 :(得分:0)
sprintf (filename, "%ld-GPS", millis());
请注意,不鼓励在Arduino上使用String because of the well documented memory leak/fragmentation problems。