Cau*_*tic 10 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');
Run Code Online (Sandbox Code Playgroud)
然后我想使用登录到该文件
pinMode(SD_PIN,OUTPUT);
dataFile = SD.open(dataFileName,FILE_WRITE);
Run Code Online (Sandbox Code Playgroud)
但我明白了
no matching function call to SDClass::open(String&, int)
candidates are: File SDClass::open(const char*,uint_8)
Run Code Online (Sandbox Code Playgroud)
但似乎Arduino字符串没有相应的
(const char *) dataFileName.c_str()
Run Code Online (Sandbox Code Playgroud)
所以我无法弄清楚如何进行正确的转换
任何帮助将不胜感激.
Cau*_*tic 17
谢谢你的帮助.解决方案是
char __dataFileName[sizeof(dataFileName)];
dataFileName.toCharArray(__dataFileName, sizeof(__dataFileName));
pinMode(SD_PIN,OUTPUT);
dataFile = SD.open(__dataFileName,FILE_WRITE);
Run Code Online (Sandbox Code Playgroud)