Только первая линия SPIFFS работает на WiFi.begin () — ESP8266-12E

Когда я запускаю код ниже, будет работать только одна строка. Если я закомментирую часть записи / чтения SSID, пароль будет работать. Если я закомментирую часть пароля, SSID будет работать. Но, если я оставлю оба в WiFi, никогда не подключится. Я жестко запрограммировал SSID и пароль в WiFi.begin () для проверки работоспособности и, конечно же, он подключается. Так что это должно быть как-то связано с тем, как я пишу или читаю более одной строки, используя SPIFFS. Однако я верну обе строки правильно, так что, по крайней мере, я получу Serial.println (). Я также за любые предложенные альтернативы SPIFFS, так как я не слишком взволнован использованием функций, которые возвращают Strings … Я бы предпочел иметь функцию, которая возвращает char *, конечно, но мой C довольно ржавый. Я также пробовал различные терминаторы \ r затем \ 0 на уровне записи и чтения, пока ничего не получалось, также пытался обрезать строку. Я пропустил основы, но я делаю SPIFFS.begin () и формат (не в таком порядке, конечно), который, кажется, работает, так как мне кажется, что Serial.println () возвращается обратно, похоже, правильно. У меня установлена ​​последняя версия arduino IDE и SPIFFS, использующая win10 x64. Вот код:

if (SPIFFS.begin())
{
Serial.println("SPIFFS.begin()...");

File f = SPIFFS.open(file, "w");//write...

if (!f)
{
Serial.println("failed to open.");
}
else//yes, file exists...
{
//found file write to it..
f.println("SomeSSID");//ssid...
f.println("MyPassword");//password...

f.close();

//now lets read the file..
f = SPIFFS.open(file, "r");

if (!f)
{
Serial.println("file failed to open..");
}
else
{
//read file...
String SSID = f.readStringUntil('\n');
String PASSWORD = f.readStringUntil('\n');

f.close();

//this didn't help
/*SSID.trim();
PASSWORD.trim();*/

ssid = (char*)SSID.c_str();
pwd = (char*)PASSWORD.c_str();

Serial.println(ssid);
Serial.println(pwd);
}
}
}

//does not work..
WiFi.begin(ssid, pwd);

0

Решение

@dandavis — спасибо! В итоге я просто изменил его на: const char * ssid = f.readStringUntil (‘\ n’). C_str ();

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]