完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include #include BluetoothSerial SerialBT; int key; #define SD_CS 34 void setup() { Serial.begin(115200); SerialBT.begin("ESP32"); SD.begin(SD_CS); if(!SD.begin(SD_CS)) { Serial.println("Card Mount Failed"); return; } uint8_t cardType = SD.cardType(); if(cardType == CARD_NONE) { Serial.println("No SD card attached"); return; } Serial.println("Initializing SD card..."); if (!SD.begin(SD_CS)) { Serial.println("ERROR - SD card initialization failed!"); return; // init failed } // If the data.txt file doesn't exist // Create a file on the SD card and write the data labels File file = SD.open("data.txt"); if(!file) { Serial.println("File doens't exist"); Serial.println("Creating file..."); writeFile(SD, "data.txt", "data rn"); } else { Serial.println("File already exists"); } file.close(); } void loop() { int value =0; int D0 = digitalRead(2); int D1 = digitalRead(15); int D2 = digitalRead(4); int D3 = digitalRead(16); int D4 = digitalRead(17); int D5 = digitalRead(5); int D6 = digitalRead(18); int D7 = digitalRead(19); char val[256]; snprintf(val , sizeof(val) , "%d %d %d %d %d %d %d %d", D0,D1,D2,D3,D4,D5,D6,D7); Serial.println(val); byte Date[8]; Date[0] = D0; Date[1] = D1; Date[2] = D2; Date[3] = D3; Date[4] = D4; Date[5] = D5; Date[6] = D6; Date[7] = D7; readFromAPP(); if(key == 65) { SerialBT.write('B'); for(int i=0;i<8;i++) { SerialBT.write(Date[i]); delay(10); } key = 0; } delay(100); appendFile(SD, "data.txt", val); } void readFromAPP() { while (SerialBT.available() > 0) { key = SerialBT.read(); } } void appendFile(fs::FS &fs, const char * path, const char * message) { Serial.printf("Appending to file: %sn", path); File file = fs.open(path, FILE_APPEND); if(!file) { Serial.println("Failed to open file for appending"); return; } if(file.print(message)) { Serial.println("Message appended"); } else { Serial.println("Append failed"); } file.close(); } void writeFile(fs::FS &fs, const char * path, const char * message) { Serial.printf("Writing file: %sn", path); File file = fs.open(path, FILE_WRITE); if(!file) { Serial.println("Failed to open file for writing"); return; } if(file.print(message)) { Serial.println("File written"); } else { Serial.println("Write failed"); } file.close(); } 我是位初学者利用arduino IDE 1.8.9做ESP32的开发 以上是我的程式码我在製作将8个脚位的状态透过蓝芽传输并用SD卡纪录 我一直无法将资料【val】写入我的SD卡中 我将模组CS脚位连接到开发版34脚内 程式编译没问题但我一直没办法将我的资料【val】写入SD卡内 我想知道为什么及如何修改 |
|
相关推荐
1个回答
|
|
在您的代码中,我注意到了一些可能影响SD卡写入的问题。以下是一些建议和解决方案:
1. 检查ESP32的引脚分配:确保您使用的是正确的引脚来控制SD卡。在您的代码中,您使用了引脚34(`#define SD_CS 34`)作为CS(片选)引脚。请确保这个引脚与您的ESP32模块和SD卡模块兼容。 2. 检查SD卡模块:确保您的SD卡模块是适用于ESP32的。有些SD卡模块可能需要额外的电源或引脚配置。请查阅您的SD卡模块的文档以获取更多信息。 3. 检查电源:确保您的ESP32和SD卡模块都有足够的电源。如果电源不足,可能导致SD卡无法正常工作。 4. 检查文件系统:在您的代码中,您使用了`SD.begin(SD_CS)`来初始化SD卡。请确保您的SD卡已经格式化为FAT32或exFAT文件系统,因为这是ESP32支持的文件系统。 5. 检查代码逻辑:在您的代码中,您使用了`if(!SD.begin(SD_CS))`来检查SD卡是否成功挂载。如果这个条件为真,您的代码将打印"Card Mount Failed"并返回。请确保这个逻辑是正确的,并且您已经正确处理了SD卡挂载失败的情况。 6. 更新Arduino IDE和库:确保您使用的是最新版本的Arduino IDE和ESP32开发板插件。此外,检查您是否已经安装了所有必要的库,例如SD库和Bluetooth库。 7. 检查代码语法:在您的代码片段中,有一些语法错误,例如`if(cardTyp`应该是`if(cardType`。请确保您的代码没有语法错误,并且所有必要的库都已经包含。 8. 调试:使用Serial打印来调试您的代码。在关键步骤添加`Serial.println()`语句,以帮助您了解代码的执行流程和可能的问题所在。 尝试以上建议,看看是否能够解决您的问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您。 |
|
|
|
只有小组成员才能发言,加入小组>>
1140 浏览 1 评论
576浏览 6评论
477浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
461浏览 5评论
462浏览 4评论
437浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 16:13 , Processed in 0.750793 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号