LUA脚本的好处是用户可以根据自己注册的一批API(当前TOOL已经提供了几百个函数供大家使用),实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多,所以在H7-TOOL里面被广泛使用,支持在线调试运行,支持离线运行。
TOOL的LUA教程争取做到大家可以无痛调用各种功能函数,不需要学习成本。
开放LUA的fwrite函数,大大方便脱机数据记录,有了这个功能后,大家使用LUA小程序操作SPI,CANFD,I2C和串口操作目标设备就可以实现脱机数据记录功能了,或者做日志功能都是可以方便实现的。
注:文件系统API操作的是TOOL自带的4GB eMMC
列举目录文件
f_dir(path) -- 参数为完整目录字符串
举例 :
f_dir("0:/H7-TOOL/Lua/串口脱机烧录/app.bin")
读文件内容 (一次最大读 16KB)
f_read(filename, offset, read_bytes) --文件名, 偏移地址, 读取长度
返回: 实际读取的文件长度
举例:
-- 第1个参数是路径,第2个参数的偏移地址,第3个参数读取大小
-- 返回值bytes表示读取的字节数,bin表示返回的数据
bytes, bin = f_read(filepath, 0, 224)
获取文件大小
f_size() -- 参数为完整目录字符串
返回文件大小
举例:
filesize=f_size("0:/H7-TOOL/Lua/串口脱机烧录/app.bin")
print(filesize)
写文件
f_write("0:/H7-TOOL/Lua/1.txt", 0, "123")
f_write("0:/H7-TOOL/Lua/1.txt", 0, "\x12\x34\x56\x78\x00\x12")
- 第1个形参是文件名,需要完整路径
- 第2个形参是文件偏移地址
- 第3个形参是待写入的文件数据(可以是ascii字符串、二进制数组(包括0x00))
- 返回值1表示成功,0表示失败
- 如果TOOL磁盘已加密。则会直接返回错误。
磁盘加密后需要先执行 lua_f_password("123456") --输入密码
密码出错5次,则禁止文件访问了,需要重新上电。
举例:
f_write("0:/H7-TOOL/Lua/1.txt", 0, "123")
bytes, bin = f_read("0:/H7-TOOL/Lua/1.txt", 0, 3)
print(bin)
案例1:
写文件操作,仅需调用f_write即可。
[Lua] 纯文本查看 复制代码 function printf(...)
print(string.format(...))
end
f_write("0:/H7-TOOL/Lua/1.txt", 0, "www.armbbs.cn")
bytes, bin = f_read("0:/H7-TOOL/Lua/1.txt", 0, 30)
printf("读取字节数:%d, 读取的内容:%s", bytes, bin )
案例2:
执行下面的lua语句,将查看 fix_data.lua 文件的内容
[Lua] 纯文本查看 复制代码 f_dir("0:/H7-TOOL/Programmer/LuaLib")
print()
bytes, bin = f_read("0:/H7-TOOL/Programmer/LuaLib/fix_data.lua", 0, 16 * 1024)
print("实际长度:", bytes)
print("文件内容:")
print(bin) --文本文件直接print,二进制文件用 print_hex
案例3:
读取二进制文件
参考案例:
下面的案例全部用到了文件系统操作。
1、串口Bootloader案例下载和文字版操作说明
https://www.armbbs.cn/forum.php?mod=viewthread&tid=113456
2、I2C Bootloader案例下载和文字版操作说明
https://www.armbbs.cn/forum.php?mod=viewthread&tid=113998
3、CANFD/CAN Bootloader案例下载和文字版操作说明
https://www.armbbs.cn/forum.php?mod=viewthread&tid=113770
4、SPI Bootloader案例下载和文字版操作说明
https://www.armbbs.cn/forum.php?mod=viewthread&tid=114301
|