eric2013 发表于 2020-3-18 08:35:32

H7-TOOL的LUA脚本API函数列表和调用方法【年久失修,此贴已经作废】

年久失修,此贴已经作废,已经不适用于新版,新的系列教程帖子:

https://www.armbbs.cn/forum.php? ... r=typeid&typeid=367

static/image/hrline/4.gif

LUA脚本的好处就是用户可以根据自己注册的一批API,实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多。

LUA小程序更新和联调操作说明:http://www.armbbs.cn/forum.php?mod=viewthread&tid=96932

两种运行方式:
(1)脱机运行
用户可以将LUA脚本文件存到eMMC里面后,H7-TOOL可以加载运行,很方便。


(2)PC软件联调:
可以方便的在PC端调用各种API函数,执行各种功能。


static/image/hrline/4.gif
API使用说明(近期会专门制作H7-TOOL使用说明的电子版PDF):
lua_register(g_Lua, "beep", beep);
lua_register(g_Lua, "delayus", delayus);
lua_register(g_Lua, "delayms", delayms);
lua_register(g_Lua, "print_hex", print_hex);
lua_register(g_Lua, "write_clock", write_clock);
lua_register(g_Lua, "read_clock", read_clock);
lua_register(g_Lua, "get_runtime", get_runtime);
lua_register(g_Lua, "check_runtime", check_runtime);
lua_register(g_Lua, "gpio_cfg",lua_GpioCfg);      
lua_register(g_Lua, "gpio_write", lua_GpioWrite);   
lua_register(g_Lua, "gpio_read", lua_GpioRead);      
lua_register(g_Lua, "read_bus", lua_ReadFmcBus);
lua_register(g_Lua, "set_tvcc", lua_SetTVCC);
lua_register(g_Lua, "i2c_start", lua_I2C_Start);
lua_register(g_Lua, "i2c_stop", lua_I2C_Stop);
lua_register(g_Lua, "i2c_send", lua_I2C_SendBytes);
lua_register(g_Lua, "i2c_recive", lua_I2C_ReciveBytes);
lua_register(g_Lua, "qspi_readid", qspi_readid);   
lua_register(g_Lua, "qspi_read", qspi_read);   
lua_register(g_Lua, "qspi_write", qspi_write);
lua_register(g_Lua, "qspi_erase4k", qspi_erase4k);
lua_register(g_Lua, "f_init", lua_f_mount);   
lua_register(g_Lua, "f_dir", lua_f_dir);
lua_register(g_Lua, "pg_init", h7swd_Init);   
lua_register(g_Lua, "pg_get_chip_id", h7swd_ReadID);   
lua_register(g_Lua, "pg_write_mem", h7swd_WriteMemory);   
lua_register(g_Lua, "pg_read_mem", h7swd_ReadMemory);
lua_register(g_Lua, "pg_get_ext_id", h7swd_ReadExtID);   
lua_register(g_Lua, "pg_load_algo_file", h7_LoadAlgoFile);
lua_register(g_Lua, "pg_prog_file", h7_ProgFile);
lua_register(g_Lua, "pg_prog_buf", h7_ProgBuf);
lua_register(g_Lua, "pg_prog_buf_ob", h7_ProgBuf_OB);
lua_register(g_Lua, "pg_read_ob", h7_Read_OptionBytes);   
lua_register(g_Lua, "pg_reset", h7_reset);
lua_register(g_Lua, "pg_detect_ic", h7_DetectIC);
lua_register(g_Lua, "pg_erase_chip", h7_EraseChip);   
lua_register(g_Lua, "pg_erase_sector", h7_EraseSector);      
lua_register(g_Lua, "pg_print_text", h7_PrintText);
lua_register(g_Lua, "pg_read_sn", h7_Read_ProductSN);
lua_register(g_Lua, "pg_write_sn", h7_Write_ProductSN);
lua_register(g_Lua, "pg_reload_var", h7_ReladLuaVar);
lua_register(g_Lua, "read_adc", lua_ReadAdc);   
lua_register(g_Lua, "read_analog", lua_ReadAnalog);
lua_register(g_Lua, "dac_on", lua_PowerOnDac);   
lua_register(g_Lua, "dac_off", lua_PowerOffDac);
lua_register(g_Lua, "dac_write", lua_WriteDac);   
lua_register(g_Lua, "dac_volt", lua_WriteVolt);
lua_register(g_Lua, "dac_curr", lua_WriteCurr);
lua_register(g_Lua, "write_tvcc_dac", lua_WriteTvccDac);
lua_register(g_Lua, "write_tvcc_volt", lua_WriteTvccVolt);
lua_register(g_Lua, "write_reg16", lua_WriteReg16);   
lua_register(g_Lua, "write_reg32", lua_WriteReg32);
lua_register(g_Lua, "write_regfloat", lua_WriteRegFloat);
lua_register(g_Lua, "read_reg16", lua_ReadReg16);   
lua_register(g_Lua, "read_reg32", lua_ReadReg32);
lua_register(g_Lua, "read_regfloat", lua_ReadRegFloat);   
lua_register(g_Lua, "save_param", lua_SaveParam);
lua_register(g_Lua, "ex_start", lua_StartExtIO);
lua_register(g_Lua, "ex_stop", lua_StopExtIO);
lua_register(g_Lua, "ex_dout", lua_WriteDO);   
lua_register(g_Lua, "ex_din", lua_ReadDI);
lua_register(g_Lua, "ex_dac", lua_WriteDAC);
lua_register(g_Lua, "ex_adc", lua_ReadADC);
lua_register(g_Lua, "uart_cfg", lua_uart_cfg);
lua_register(g_Lua, "uart_send", lua_uart_send);
lua_register(g_Lua, "uart_recive", lua_uart_recive);
lua_register(g_Lua, "modbus_write_u16", lua_uart_WriteReg16);
lua_register(g_Lua, "modbus_write_u32", lua_uart_WriteReg32);
lua_register(g_Lua, "modbus_write_float", lua_uart_WriteRegFloat);
lua_register(g_Lua, "modbus_read_u16", lua_uart_ReadRegU16);   
lua_register(g_Lua, "modbus_read_u32", lua_uart_ReadRegU32);
lua_register(g_Lua, "modbus_read_s16", lua_uart_ReadRegS16);   
lua_register(g_Lua, "modbus_read_s32", lua_uart_ReadRegS32);   
lua_register(g_Lua, "modbus_read_float", lua_uart_ReadRegFloat);      
lua_register(g_Lua, "modbus_write_do", lua_uart_WriteDO);
lua_register(g_Lua, "modbus_read_do", lua_uart_ReadDO);
lua_register(g_Lua, "modbus_read_di", lua_uart_ReadDI);   

static/image/hrline/4.gif
常用的几个API操作说明:



aaabbbad 发表于 2020-3-18 08:45:48

很好奇这个lua脚本是运行在单片机里吗,那执行擦除MCU后不是啥都没了?有机会研究下

morning_enr6U 发表于 2020-3-18 08:50:33

{:8:}

eric2013 发表于 2020-3-18 09:02:30

aaabbbad 发表于 2020-3-18 08:45
很好奇这个lua脚本是运行在单片机里吗,那执行擦除MCU后不是啥都没了?有机会研究下

对,就是单片机加载后就可以运行,非常方便,无论是产品升级还是平时调试应用。

eric2013 发表于 2020-3-20 12:03:58

更新下常用API的操作说明。

zhanghonglang 发表于 2022-2-9 11:41:12

脚本文件的上限是多少?

eric2013 发表于 2022-2-9 11:43:06

zhanghonglang 发表于 2022-2-9 11:41
脚本文件的上限是多少?

可以将4GB的eMMC存满。

yuanzhongda 发表于 2023-4-24 10:53:05

这个LUA是先注册一批函数,然后在程序外写一个.lua的脚本,将脚本拷贝内存中,运行对应的内存。
是这么个使用流程吗

eric2013 发表于 2023-4-24 12:37:04

yuanzhongda 发表于 2023-4-24 10:53
这个LUA是先注册一批函数,然后在程序外写一个.lua的脚本,将脚本拷贝内存中,运行对应的内存。
是这么个 ...

简单玩法流程

STM32-V6 LUA简单移植
https://www.armbbs.cn/forum.php?mod=viewthread&tid=94757&fromuid=58
(出处: 硬汉嵌入式论坛)
页: [1]
查看完整版本: H7-TOOL的LUA脚本API函数列表和调用方法【年久失修,此贴已经作废】