文件系统介绍

1. 文件系统

文件系统大家都很熟悉,如其名,就是用来管理文件的,在电脑上使用关键管理器就可以轻松访问和管理文件系统 有了文件系统,可以把数据保存进去,就算断电了,数据仍然存在

2. MaixPy 的文件系统

在 MaixPy 中,也内置了文件系统的支持

在电脑上,文件实际都是存在硬盘上的, 那么在 MaixPy 中,文件系统放在那里的呢, 答案是放在 Flash 里面或者SD卡里面, 开发板的 Flash 需要用来储存程序,我们预留了Flash末尾的3MiB空间,用来存放文件系统, 我们用了 SPIFFS作为文件系统。 另外也支持FAT32格式的SD卡。

  • 如果你没有入门过单片机,你只需要知道, 你有什么数据需要断电后还能保存,它能够帮你做到
  • 如果你之前简单的入门过单片机开发,你可能尝试过将数据保存到 Flash, 也许没有使用文件系统,而是自己手动写数据到Flash,然后自己管理哪些数据应该写到什么位置。有了文件系统,你不用再去管哪些数据应该写到哪儿了, 你只需要调用函数写入数据,文件系统会自动判断应该写到哪里最合适(会考虑效率、寿命等)

3. MaixPy 的文件系统使用

对于文件系统的使用, 和电脑上python读写文件系统一样, 使用os模块 和 open函数

对于内置的 SPIFFS, 开机会被自动挂在到/flash目录, 所以只需要对这个目录进行操作即可,注意不支持文件夹,比如

import uos

print("files:", uos.listdir("/flash"))

with open("/flash/test.txt", "w") as f:
    f.write("hello text")

print("files:", uos.listdir("/flash"))

with open("/flash/test.txt", "r") as f:
    content = f.read()

print("read:", content)

解读:

  • 导入了uos模块
  • 列出了/flash目录下所有文件
  • 并且向/flash目录写入了一个test.txt文件,内容是hello text,
  • 再列出了/flash目录下所有文件, 会发现多了一个test.txt
  • 读取文件到content变量
  • 打印content变量, 输出hello text,也就是刚刚写入文件的内容
  • 这个内容在开发板断电之后再上电,仍然能读到正确的内容

当然也支持 SD 卡, 如果你需要使用, SD 卡需要满足以下几点:

  • 支持 SPI 模式, 市面上大多数正版卡都支持
  • 分区为 MBR (msdos)
  • 格式化为 FAT32
  • 大小测试过最大 128GiB 可用 断电插入 SD 后, 上电,SD 卡会被挂载在/sd,如过有多个分区,第二个分区是/sd2

注意/(根目录)不能写入数据,只能往/flash或者/sd写入数据 开机如果有SD卡, 会自动将当前目录切换到/sd, 如果没有,则会自动切换到/flash

powered by GitbookFile Modify: 2021-01-16 11:36:59

results matching ""

    No results matching ""