1

我想一次将我的数据记录在我的 Arduino 上一个文件。我希望文件名是经过的毫秒数 + 一些 ID 的组合。例如,GPS 数据将是 millis()+"GPS"。

我尝试了以下代码,但它不喜欢我使用String. 我可以使用 char 数组,但长度总是动态的。有没有办法以某种方式用 at string 做到这一点?

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");
    }
}
4

2 回答 2

1

你可以试试以下

char fileNameCharArray[filename.length()];
filename.toCharArray(fileNameCharArray, filename.length())
File dataFile = SD.open(fileNameCharArray, FILE_WRITE);
于 2012-12-07T18:56:45.820 回答
0
sprintf (filename, "%ld-GPS", millis());

请注意,由于有据可查的内存泄漏/碎片问题,不鼓励在 Arduino 上使用 String 。

于 2012-12-07T19:07:31.917 回答