vfs_mount在esp8266的sqlite中突然不工作

rseugnpd  于 2023-01-13  发布在  SQLite
关注(0)|答案(1)|浏览(179)

我尝试使用Sqlite3 for ESP8266 lib,它告诉我应该从vfs_mount("/SD0", D8);开始,我一直在这样做,直到我突然打不开DB。我试图找出原因,然后意识到这个函数返回NULL,这意味着没有创建vfs。
我不知道为什么会发生这种情况,我没有改变我的任何代码,但这里是设置以防万一:

void setup(void) {
  Serial.begin(115200);
  Wire.begin();
  RTC.begin();
  SPI.begin();
  nfc.begin();

  if (vfs_mount("/SD0", SS) == NULL)
    Serial.println("Unable to set vfs");

  if (RTC.lostPower())
    RTC.adjust(DateTime(F(__DATE__), F(__TIME__)));

  sqlite3_initialize();

  Serial.println("System initialized");
}

奇怪的是,与SD.h的常规SD通信工作,所以肯定不是接线的问题,但同样,以防万一,我正在接线:

  • D5 → SCK
  • D6 → MISO
  • D7 → MOSI
  • D8 → CS

我还尝试过重新安装库及其依赖项,ESP8266和SdFat的Sqlite3。
我真的很感激你能提供的任何帮助!
如果你还想看我的代码请告诉我。

0s7z1bwu

0s7z1bwu1#

问题似乎与返回NULL的vfs_mount函数有关,这意味着没有创建虚拟文件系统(VFS)。这可能是由于指定的挂载点“/SD 0”或使用的片选引脚(D8)有问题。
您可以尝试的一件事是检查SD卡是否正确插入并连接到ESP8266。此外,确保芯片选择引脚(D8)是否正确连接到SD卡的CS管脚。另一件需要检查的事情是,库SdFat是否正确安装,其版本是否与ESP8266的Sqlite3版本兼容。您可能还需要查看库文档,以了解任何其他已知问题或疑难解答提示。如果问题仍然存在,请提供有关错误消息的详细信息或您可能拥有的任何其他相关信息

相关问题