跳到主要内容

TF 卡读/写/删除

注意:仅 C1 带 SDIO TF 卡接口,C2不适合本教程(C2 仅能通过内部 Flash 模拟出一个 1.6M 的极小 U 盘)。

C1Mini

一、实现功能

将开发板插上一张 8GB 的 TF 卡后,通过 USB 线将开发板和电脑连接起来:

  • 功能1,写操作:每隔0.2秒向TF卡上的test.txt文件中写入10个数据(0-9)
  • 功能2,读操作:上面的写操作循环执行20次(4秒)过后,再读取test.txt中的内容并通过print打印出来。
  • 功能3,删除操作:上面读操作完毕后,删除test.txt文件,最后主程序结束。

op_img

二、材料清单

名称推荐
TF 卡容量(32GB 以内),最好是class 6 以上的 TF 卡

三、完整代码

do
cnt = 0
data = {0,1,2,3,4,5,6,7,8,9}

--写操作: 连续20次每隔200毫秒,每次向test.txt写10个数据
--如果test.txt不存在,会自动创建。如果存在就接着原来文件的最后面开始写入
for i = 1, 20 do
LIB_DelayMs(200)
cnt = cnt + 1
LIB_Fwrite("test.txt", data)
end

--读操作:从刚才的test.txt文件的起始地址0处开始读取最多256字节的内容,如果不足256返回实际数目
--read_number:整数型 表示读取的数目,read_content:table类型 存放读出的内容
read_number, read_tab = LIB_Fread("test.txt",0)
if read_number > 0 then
--concat是Lua table类的自带函数,用来合并所有元素
print(table.concat(read_tab))
end

--删除操作:最后删除test.txt文件
LIB_Fdelete("test.txt")

--停止Lua线程
while(true) do
end
end
如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

四、代码运行结果

最后我们在 TF 卡的 LOG.TXT 日志文件里可以看到我们刚才 print 输出 read test.txt 里的内容,和第一步写入的 200 个数据内容完全一样。

read