只有 SPIFFS 的第一行在 WiFi.begin() - ESP8266-12E 上工作
Only First Line of SPIFFS works on WiFi.begin() - ESP8266-12E
当我运行下面的代码时,只有一行可以工作。如果我注释掉SSID写入/读取部分,密码将起作用。我注释掉SSID将起作用的密码部分。但是,如果我把两者都留在 WiFi 中永远不会连接。我在WiFi.begin()中对SSID和密码进行了硬编码,作为健全性检查,并且确实可以连接。因此,它一定与我使用 SPIFFS 编写或阅读多行的方式有关。但是,我确实正确地恢复了两行,因此至少,如果我使用Serial.println()它们,则看起来至少如此。我也愿意接受任何建议的 SPIFFS 替代方案,因为我对使用返回字符串的函数不太兴奋。当然,我宁愿有一个返回字符*的函数,但我的 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);
@dandavis - 谢谢!我最终只是将其更改为:const char* ssid = f.readStringUntil('').c_str();
相关文章:
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 调用'begin(int [n])'没有匹配函数
- 为constchar*定义std::begin合法吗
- constexpr begin of a std::array
- 无法使用 ESP32 连接家庭 WiFi?
- remove(str.begin(), str.end(), );无法正常工作(我正在使用视觉工作室 2012)
- 了解向量中的 .begin 和 .end
- 混淆 Begin() 方法作为参数
- std::ranges::begin 和 std::begin 有什么区别?
- C++ 两台不同机器之间通过wifi进行套接字通信
- C++ const char with .begin() and .end()
- 有没有函数可以在擦除 c++ 中获取 deque.begin() 的 int 值?
- 为什么 string::begin() 在即时窗口中输出整个字符串
- 如果没有重新散列,为什么 unordered_set::begin() 会改变?
- 为什么 std::find( s.begin(), s.end(), val ) 比集合 s 的 s.find(val) 慢 1000 倍<int>?
- begin() 在 C++17 年被制作为 constexpr 但在 C++14 年成为 cbegin() 吗?
- 如何使用vector.begin()和vector.end()遍历矩阵?
- 递减 std::vector::begin 是否未定义,即使它从未被使用过?
- 只有 SPIFFS 的第一行在 WiFi.begin() - ESP8266-12E 上工作