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 に答える