11

我正在使用 Arduino 库。我想记录来自传感器的一些数据,为其添加日期时间戳并将其写入 SD 卡。

要构建我尝试过的文本文件名

    String dataFileName = String(String(sedClock.getTime().year(),DEC) + 
                         String(sedClock.getTime().month(),DEC) + 
                         String(sedClock.getTime().day(),DEC) + 
                         String(sedClock.getTime().hour(),DEC) + 
                         String(sedClock.getTime().minute(),DEC) + 
                         String(sedClock.getTime().second(),DEC) + '_log.txt');

然后我想使用

      pinMode(SD_PIN,OUTPUT);
      dataFile = SD.open(dataFileName,FILE_WRITE);

但我明白了

    no matching function call to SDClass::open(String&, int) 
    candidates are: File SDClass::open(const char*,uint_8)

但似乎 Arduino 字符串没有相当于

    (const char *) dataFileName.c_str()

所以我不知道如何进行正确的转换

任何帮助将不胜感激。

4

2 回答 2

19

谢谢你的帮助。解决方案是

    char __dataFileName[sizeof(dataFileName)];
    dataFileName.toCharArray(__dataFileName, sizeof(__dataFileName));

    pinMode(SD_PIN,OUTPUT);
    dataFile = SD.open(__dataFileName,FILE_WRITE);
于 2012-07-25T08:30:15.197 回答
3

StringToCharArray或者怎么样StringGetBytes

于 2012-07-23T10:06:17.103 回答