使用Arduino将String转换为const char *类型

时间:2012-07-23 09:58:27

标签: c++ casting arduino

我正在使用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()

所以我无法弄清楚如何进行正确的转换

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:17)

感谢您的帮助。解决方案是

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

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

答案 1 :(得分:2)