【问题标题】:ttgo t-beam and SPI for SD card problemsttgo t-beam 和 SPI 解决 SD 卡问题
【发布时间】:2020-10-08 16:03:50
【问题描述】:

我试图找出我的代码的问题,而不是简单的,它不起作用。接线似乎都是正确的,我怀疑是软件问题,但我自己找不到任何运气。我还验证了该卡是否良好且可写。

#include <SPI.h>
#include <SD.h>

// HSPI
#define HSPI_SCLK 14
#define HSPI_MISO 4
#define HSPI_MOSI 13
#define HSPI_CS 2

SPIClass * hspi = NULL;

String dataString =""; // holds the data to be written to the SD card
File sensorData;

void setup() {

  hspi = new SPIClass(HSPI);
  hspi->begin(HSPI_SCLK, HSPI_MISO, HSPI_MOSI, HSPI_CS); //SCLK, MISO, MOSI, SS
  pinMode(HSPI_CS, OUTPUT); //HSPI SS
  
  Serial.begin(115200);
  
  // see if the card is present and can be initialized:
  if (!SD.begin(HSPI_CS)) {
    Serial.println("Card failed, or not present");
  }

  if (SD.exists("data.csv")) {
    Serial.println("data.csv exists.");
  }
  else {
    Serial.println("data.csv doesn't exist.");
  }

  // open a new file and immediately close it:
  Serial.println("Creating data.csv...");
  sensorData = SD.open("data.csv", FILE_WRITE);
  sensorData.close();

  // Check to see if the file exists:
  if (SD.exists("data.csv")) {
    Serial.println("data.csv exists.");
  }
  else {
    Serial.println("data.csv doesn't exist.");
  }
  while(1);
}

void loop() {

}

这是在 TTGO T-Beam 上运行的。我正在为 SPI 指定引脚,因为默认引脚不可用,因为它们与 LoRa 芯片集成。我对使用 SPI 不是很熟悉,这种方法对我来说是新的,但我在网上看到了很多关于它的文档。

我怎样才能弄清楚为什么我没有读/写到我的 SD 卡?

【问题讨论】:

  • “我正在为 SPI 指定引脚,因为默认引脚” - 你是什么意思?您不能只使用任意引脚,除非这是 SPI 主机的 bitbanged 实现。你也没有告诉任何关于失败的方式。我猜它编译,它是一个运行时错误?串口上是否打印了任何调试消息?
  • 正如我从文档和其他代码库中了解到的那样,您可以为 SPI 分配自己的引脚。如果这不正确,那么它会让我回到第 1 方,只是弄清楚我可以/应该使用哪些引脚。代码确实可以编译,但我没有运气与我的 microsd 读/写器交互。我检查了卡和接线。我认为问题与代码有关。
  • 已经多次告知 SPI MMC ab使用 SPI 协议。您确实必须为此模式提供适当的硬件和软件支持。 SPI 总线物理上允许您并行连接设备。 CS(芯片选择)是对它们的序列化访问。当然,在以足够高的频率添加许多设备之前,您必须考虑线路的阻抗。

标签: arduino spi


【解决方案1】:

结果证明这是一个两部分的解决方案。第一个问题是,尽管文档说明它可以在 3.3v 或 5v 上运行,但它只能在 5v 线路上运行。

第二部分是我如何处理文件。一旦我在它前面添加了一个斜线,一切就完美了。

SD.exists("/data.csv")

我希望这对将来的其他人有所帮助!

【讨论】:

    【解决方案2】:

    TTGO Tbeam V1

    这是我正在使用的 T_beam 我尝试按照您的代码进行操作,但我只收到错误消息,说没有 sd 卡和文件。

    我在这里看到https://forum.arduino.cc/index.php?topic=708425.0 说这些 sd 卡读卡器有时需要修改才能工作。

    你必须这样做吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-05
      • 2019-07-31
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 2021-08-11
      • 1970-01-01
      相关资源
      最近更新 更多