查看: 1456|回复: 5

[其他] ARDUINO SD 卡

[复制链接]

该用户从未签到

发表于 2018-11-22 13:02 | 显示全部楼层 |阅读模式
本帖最后由 ws9528 于 2018-11-22 13:58 编辑

现在按示例 已经可以读写文件内容   可以新建删除文件
但是根据:file:///D:/arduino/arduino-1.8.7/reference/www.arduino.cc/en/Reference/SD.html
看了办天也不明白怎么改写文件内容    而不是追加。

我就想怎么改写TXT文件内容。  比如我在文件里面想记录变量如果停电下次可以继续读出此变量 根本不需要追加内容


目前想到的解决办法是
删除文件
创建文件
写入数据
读出数据



但这个方法可能不是最佳方案,因为由于停电原因可能导致文件中没有变量的值  下次开机读出会导致程序出错

该用户从未签到

 楼主| 发表于 2018-11-22 14:00 | 显示全部楼层

kittenblock中小学创客名师推荐的图形化编程软件

//引用两个库文件
#include <SPI.h>
#include <SD.h>

//** MOSI - pin 11
//** MISO - pin 12
//** CLK  - pin 13
//** CS   - pin  4

const int chipSelect = 4;

File myFile;

void setup() {
  Serial.begin(9600);

  Serial.print("正在准备SD卡中...");
  if (!SD.begin(chipSelect)) {
    Serial.println("SD卡故障或不存在");
    while (1);
  }
  Serial.println("    就绪");

}

void loop() {

  String WenJianMing = "abc.ZYX";            //文件名
  String BianLiangZhi = "变量值";            //变量值

  ChuCunBianLiang(WenJianMing, BianLiangZhi);//储存变量(文件名, 变量值)
  delay(1000);

  Serial.println("***********************************");

}





boolean ChuCunBianLiang(String WenJianMing, String BianLiangZhi) {//  储存变量(文件名, 变量值)
  if (SD.exists(WenJianMing)) {               //如果文件存在
    SD.remove(WenJianMing);                   //删除文件
    Serial.println("文件 " + WenJianMing + " 已经存在,删除完成。");
    XieRuWenJian(WenJianMing, BianLiangZhi);   //创建文件并打开写入变量值后关闭
  } else {                                    //如果文件不存在
    XieRuWenJian(WenJianMing, BianLiangZhi);   //直接 创建文件并打开写入变量值后关闭
  }
}

boolean XieRuWenJian(String WenJianMing, String BianLiangZhi) { //写入文件(文件名,变量值)   创建并打开写入变量值后关闭
  File dataFile = SD.open(WenJianMing, FILE_WRITE);//创建并打开文件
  Serial.println("创建并打开文件 " + WenJianMing + "  已完成");
  if (dataFile) { // 如果文件可用,则向其写入:
    dataFile.println(BianLiangZhi);
    Serial.println("向文件 " + WenJianMing + " 中写入变量 " + BianLiangZhi + "  已完成");
    dataFile.close();
    Serial.println("文件 " + WenJianMing + "  已关闭");
    return (true);
  }
  else {
    return (false);
    Serial.println("打开文件 " + WenJianMing + "  时出错");
  }
}
  • TA的每日心情
    奋斗
    2018-12-6 11:03
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    发表于 2018-11-23 08:29 | 显示全部楼层
    只是记录变量的话,不如写入内部EEPROM。

    该用户从未签到

     楼主| 发表于 2018-11-23 13:45 | 显示全部楼层
    lxw1997 发表于 2018-11-23 08:29
    只是记录变量的话,不如写入内部EEPROM。

    不太了解,把这种变量存进去具体怎么写,听说只能存255以下的数字。
  • TA的每日心情
    奋斗
    2018-12-6 11:03
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    发表于 2018-11-23 15:43 | 显示全部楼层
    ws9528 发表于 2018-11-23 13:45
    不太了解,把这种变量存进去具体怎么写,听说只能存255以下的数字。

    Arduino UNO是8位单片机,存储单元一个字节也是8位,但并不是说不能用来存其它的类型的变量。具体怎么操作,建议专题研读一下EEPROM的资料。

    该用户从未签到

     楼主| 发表于 2018-11-23 20:24 | 显示全部楼层
    这个玩意好像有点麻烦,技术太菜,只能等高人写个帖子了
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    [限时福利]5分钟带你快速了解新一代开发板:M5STACK
    [限时福利]5分钟带你快速
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    Arduino使用电阻分压测量电池电压问题
    Arduino使用电阻分压测量
    请教,下图中的连接有什么问题,如何调整? 让只有一块电池的条件下,解决测量电压不
    上传一个蓝牙串口助手,安卓版的
    上传一个蓝牙串口助手,安
    /* 本软件为蓝牙串口通讯工具,可与蓝牙模块(如:HC-05)建立连接,进行串口通讯,可
    蓝牙串口助手 1.3 beta 1测试版
    蓝牙串口助手 1.3 beta 1
    在之前版本的基础上增加了视觉相关功能: 颜色跟踪模式及人脸跟踪模式, 增加了发
    萌新跪求arduinoUNO板对接无线模块(如何接和程序)
    萌新跪求arduinoUNO板对接
    哪位dalao能帮帮我啊???急!!! (提供有偿服务可加我QQ3285396460)
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表