除了简单的代码外,我正在尝试查找代码问题,它无法正常工作。接线似乎都正确,并且我怀疑是软件问题,但是我自己找不到运气。我还验证了这张卡的质量和可写性。
#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卡进行读写?
答案 0 :(得分:0)
事实证明这是一个分为两个部分的解决方案。第一个问题是,尽管文档指出它可以在3.3v或5v上运行,但仅适用于5v线路。
第二部分是我如何处理文件。一旦在其前面添加了斜线,一切都将完美运行。
SD.exists("/data.csv")
我希望这会在将来对其他人有所帮助!
答案 1 :(得分:0)
TTGO Tbeam V1
这是我正在使用的 T_beam 我试图按照您的代码进行操作,但我只是收到错误消息,说没有 SD 卡和文件。
我在这里读到 https://forum.arduino.cc/index.php?topic=708425.0 这些 sd 读卡器有时需要修改才能工作。
你必须这样做吗?