TF 卡读/写/删除
注意:仅 C1 带 SDIO TF 卡接口,C2不适合本教程(C2 仅能通过内部 Flash 模拟出一个 1.6M 的极小 U 盘)。
一、实现功能
将开发板插上一张 8GB 的 TF 卡后,通过 USB 线将开发板和电脑连接起来:
- 功能1,写操作:每隔0.2秒向TF卡上的test.txt文件中写入10个数据(0-9)
- 功能2,读操作:上面的写操作循环执行20次(4秒)过后,再 读取test.txt中的内容并通过print打印出来。
- 功能3,删除操作:上面读操作完毕后,删除test.txt文件,最后主程序结束。
二、材料清单
名称 | 推荐 |
---|---|
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
四、代码运行结果
最后我们在 TF 卡的 LOG.TXT 日志文件里可以看到我们刚才 print 输出 read test.txt 里的内容,和第一步写入的 200 个数据内容完全一样。