用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

点击进入授权页面

只需一步,快速开始

  • QQ空间
  • 回复
  • 收藏
  • TA的每日心情
    慵懒
    2017-7-16 11:47
  • 签到天数: 44 天

    [LV.5]常住居民I

    奈何col 攻城狮 2017-1-5 00:59 楼主
    发现example居然没读取的示例,自己写了个:

    [C++] 纯文本查看 复制代码
    /*
    Arduino 101 SPI Flash读文件
    奈何col 2017.1.11
    [url=http://www.arduino.cn]www.arduino.cn[/url]
    */
    #include <SerialFlash.h>
    #include <SPI.h>
    
    // 文件名 
    const char *filename = "Arduino101.txt";
    // 片选引脚
    const int FlashChipSelect = 21;
    
    void setup() {
      Serial.begin(9600);
      while (!Serial) ;
      delay(500);
      // 初始化SPI Flash芯片
      SerialFlash.begin(FlashChipSelect);
    
      // 如果文件不存在,则输出提示
      // 如果文件存在,则读取文件内容
      if(!SerialFlash.exists(filename)) {
        Serial.println("File " + String(filename) + " does not exist");
      }
      else {
        SerialFlashFile file;
        file = SerialFlash.open(filename);
        int len = file.size();
        char fileBuffer[len];
        file.read(fileBuffer, len);
        Serial.println("file:" + String(filename));
        Serial.println("size:" + len);
        Serial.println("contents:\r\n" + String(fileBuffer));
      }
    }
    
    void loop() {
    }
    


    原写文件示例不够清晰,也重新修改:
    [C++] 纯文本查看 复制代码
    /*
    Arduino 101 SPI Flash写文件
    奈何col 2017.1.11
    [url=http://www.arduino.cn]www.arduino.cn[/url]
    */
    
    #include <SerialFlash.h>
    #include <SPI.h>
    
    // 文件大小
    #define FSIZE 256
    // 文件名
    const char *filename = "Arduino101.txt";
    // 文件内容
    const char *contents = "The groundbreaking Intel Curie module expands the possibilities of what tech can do.";
    // 片选引脚
    const int FlashChipSelect = 21; 
    
    void setup() {
      Serial.begin(9600);
      while (!Serial) ;
      delay(500);
      // 初始化SPI Flash芯片
      SerialFlash.begin(FlashChipSelect);
    
      // 如果文件已存在,则输出提示
      // 如果文件不存在,则创建文件并写入
      if(SerialFlash.exists(filename)) {
          Serial.println("File " + String(filename) + " already exists");
      }
      else {
          Serial.println("Creating file " + String(filename));
          SerialFlash.create(filename, FSIZE);
          // 新建SerialFlashFile对象用于文件操作
          SerialFlashFile file;
          file = SerialFlash.open(filename);
          file.write(contents, strlen(contents) + 1);
          Serial.println("String \"" + String(contents) + "\" written to file " + String(filename));
      }
    }
    
    void loop() {
    }
    
    




    如果以上内容对你有帮助,你可以通过打赏支持作者
    2m的flash,一定试试,感谢分享。
    打赏作者鼓励一下!
    实际操作无法读取,完全没反应,请问是可能什么原因?
    hanspond 发表于 2018-1-28 01:04
    实际操作无法读取,完全没反应,请问是可能什么原因?

    有可能是因为你没有先擦除干净
    打赏作者鼓励一下!
    Zoologist 发表于 2018-1-28 08:45
    有可能是因为你没有先擦除干净

    擦拭板子?
    我后来改用了CurieSerialFlash.h

    SerialFlash.begin(ONBOAR_FLASH_SPI_PORT,ONBOARD_FLASH_CS_PIN)
    现在可以正常擦写了。原文帖子里面的指定SerialFlash.begin(21)不行

    hanspond 发表于 2018-1-28 14:00
    擦拭板子?
    我后来改用了CurieSerialFlash.h

    哦 我说的是每次写入之前最好先清空  spi

    101要用 CurieSerialFlash
    打赏作者鼓励一下!
    Zoologist 发表于 2018-1-28 16:42
    哦 我说的是每次写入之前最好先清空  spi

    101要用 CurieSerialFlash

    感觉不是擦除的问题,写入的时候就没反应(写入的下一个语句的serialprint十几分钟都没反应),然后载入检查spi有没文件也是显示0。改用curieserialflash就没问题了。
    请问该如何将结构体对象存储在文件中,再读取出来

    点评

    参考:用共用体结构保存其他类型的数据到EEPROM: http://www.arduino.cn/thread-2684-1-1.html  详情 回复 发表于 2018-2-4 19:49
    ouyangxin 发表于 2018-2-4 11:20
    请问该如何将结构体对象存储在文件中,再读取出来

    参考:用共用体结构保存其他类型的数据到EEPROM: http://www.arduino.cn/thread-2684-1-1.html
    如果以上内容对你有帮助,你可以通过打赏支持作者
    ouyangxin 发表于 2018-2-4 11:20
    请问该如何将结构体对象存储在文件中,再读取出来

    谢谢。可以用结构体的定义方法替代共用体吗
    12下一页
    发新帖
    发表评论
    高级模式  
    您需要登录后才可以回帖 登录 | 立即注册  
    关闭

    推荐主题 上一条 /2 下一条