ttgo T型光束和SPI用于SD卡问题

时间:2020-10-08 16:03:50

标签: arduino spi

除了简单的代码外,我正在尝试查找代码问题,它无法正常工作。接线似乎都正确,并且我怀疑是软件问题,但是我自己找不到运气。我还验证了这张卡的质量和可写性。

#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型梁上运行。我指定SPI的引脚是因为默认引脚不可用,因为它们已与LoRa芯片集成在一起。我对使用SPI并不十分熟悉,这种方法对我来说是新的,但是我已经在网上看到了很多有关它的文档。

我如何找出为什么不对SD卡进行读写?

2 个答案:

答案 0 :(得分:0)

事实证明这是一个分为两个部分的解决方案。第一个问题是,尽管文档指出它可以在3.3v或5v上运行,但仅适用于5v线路。

第二部分是我如何处理文件。一旦在其前面添加了斜线,一切都将完美运行。

SD.exists("/data.csv")

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

答案 1 :(得分:0)

TTGO Tbeam V1 TTGO Tbeam V1

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

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

你必须这样做吗?