硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4934|回复: 8
收起左侧

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

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2020-3-18 08:35:32 | 显示全部楼层 |阅读模式
年久失修,此贴已经作废,已经不适用于新版,新的系列教程帖子:

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



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

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

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

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


API使用说明(近期会专门制作H7-TOOL使用说明的电子版PDF):
  1. lua_register(g_Lua, "beep", beep);
  2. lua_register(g_Lua, "delayus", delayus);
  3. lua_register(g_Lua, "delayms", delayms);
  4. lua_register(g_Lua, "print_hex", print_hex);
  5. lua_register(g_Lua, "write_clock", write_clock);
  6. lua_register(g_Lua, "read_clock", read_clock);
  7. lua_register(g_Lua, "get_runtime", get_runtime);
  8. lua_register(g_Lua, "check_runtime", check_runtime);
  9. lua_register(g_Lua, "gpio_cfg",  lua_GpioCfg);        
  10. lua_register(g_Lua, "gpio_write", lua_GpioWrite);   
  11. lua_register(g_Lua, "gpio_read", lua_GpioRead);      
  12. lua_register(g_Lua, "read_bus", lua_ReadFmcBus);  
  13. lua_register(g_Lua, "set_tvcc", lua_SetTVCC);
  14. lua_register(g_Lua, "i2c_start", lua_I2C_Start);
  15. lua_register(g_Lua, "i2c_stop", lua_I2C_Stop);
  16. lua_register(g_Lua, "i2c_send", lua_I2C_SendBytes);
  17. lua_register(g_Lua, "i2c_recive", lua_I2C_ReciveBytes);
  18. lua_register(g_Lua, "qspi_readid", qspi_readid);   
  19. lua_register(g_Lua, "qspi_read", qspi_read);   
  20. lua_register(g_Lua, "qspi_write", qspi_write);
  21. lua_register(g_Lua, "qspi_erase4k", qspi_erase4k);
  22. lua_register(g_Lua, "f_init", lua_f_mount);   
  23. lua_register(g_Lua, "f_dir", lua_f_dir);
  24. lua_register(g_Lua, "pg_init", h7swd_Init);   
  25. lua_register(g_Lua, "pg_get_chip_id", h7swd_ReadID);   
  26. lua_register(g_Lua, "pg_write_mem", h7swd_WriteMemory);   
  27. lua_register(g_Lua, "pg_read_mem", h7swd_ReadMemory);  
  28. lua_register(g_Lua, "pg_get_ext_id", h7swd_ReadExtID);     
  29. lua_register(g_Lua, "pg_load_algo_file", h7_LoadAlgoFile);
  30. lua_register(g_Lua, "pg_prog_file", h7_ProgFile);
  31. lua_register(g_Lua, "pg_prog_buf", h7_ProgBuf);
  32. lua_register(g_Lua, "pg_prog_buf_ob", h7_ProgBuf_OB);
  33. lua_register(g_Lua, "pg_read_ob", h7_Read_OptionBytes);   
  34. lua_register(g_Lua, "pg_reset", h7_reset);
  35. lua_register(g_Lua, "pg_detect_ic", h7_DetectIC);
  36. lua_register(g_Lua, "pg_erase_chip", h7_EraseChip);   
  37. lua_register(g_Lua, "pg_erase_sector", h7_EraseSector);      
  38. lua_register(g_Lua, "pg_print_text", h7_PrintText);
  39. lua_register(g_Lua, "pg_read_sn", h7_Read_ProductSN);
  40. lua_register(g_Lua, "pg_write_sn", h7_Write_ProductSN);
  41. lua_register(g_Lua, "pg_reload_var", h7_ReladLuaVar);
  42. lua_register(g_Lua, "read_adc", lua_ReadAdc);   
  43. lua_register(g_Lua, "read_analog", lua_ReadAnalog);
  44. lua_register(g_Lua, "dac_on", lua_PowerOnDac);   
  45. lua_register(g_Lua, "dac_off", lua_PowerOffDac);
  46. lua_register(g_Lua, "dac_write", lua_WriteDac);   
  47. lua_register(g_Lua, "dac_volt", lua_WriteVolt);
  48. lua_register(g_Lua, "dac_curr", lua_WriteCurr);
  49. lua_register(g_Lua, "write_tvcc_dac", lua_WriteTvccDac);
  50. lua_register(g_Lua, "write_tvcc_volt", lua_WriteTvccVolt);
  51. lua_register(g_Lua, "write_reg16", lua_WriteReg16);   
  52. lua_register(g_Lua, "write_reg32", lua_WriteReg32);
  53. lua_register(g_Lua, "write_regfloat", lua_WriteRegFloat);
  54. lua_register(g_Lua, "read_reg16", lua_ReadReg16);   
  55. lua_register(g_Lua, "read_reg32", lua_ReadReg32);
  56. lua_register(g_Lua, "read_regfloat", lua_ReadRegFloat);   
  57. lua_register(g_Lua, "save_param", lua_SaveParam);
  58. lua_register(g_Lua, "ex_start", lua_StartExtIO);
  59. lua_register(g_Lua, "ex_stop", lua_StopExtIO);
  60. lua_register(g_Lua, "ex_dout", lua_WriteDO);   
  61. lua_register(g_Lua, "ex_din", lua_ReadDI);
  62. lua_register(g_Lua, "ex_dac", lua_WriteDAC);
  63. lua_register(g_Lua, "ex_adc", lua_ReadADC);
  64. lua_register(g_Lua, "uart_cfg", lua_uart_cfg);
  65. lua_register(g_Lua, "uart_send", lua_uart_send);
  66. lua_register(g_Lua, "uart_recive", lua_uart_recive);
  67. lua_register(g_Lua, "modbus_write_u16", lua_uart_WriteReg16);
  68. lua_register(g_Lua, "modbus_write_u32", lua_uart_WriteReg32);
  69. lua_register(g_Lua, "modbus_write_float", lua_uart_WriteRegFloat);
  70. lua_register(g_Lua, "modbus_read_u16", lua_uart_ReadRegU16);   
  71. lua_register(g_Lua, "modbus_read_u32", lua_uart_ReadRegU32);
  72. lua_register(g_Lua, "modbus_read_s16", lua_uart_ReadRegS16);   
  73. lua_register(g_Lua, "modbus_read_s32", lua_uart_ReadRegS32);   
  74. lua_register(g_Lua, "modbus_read_float", lua_uart_ReadRegFloat);      
  75. lua_register(g_Lua, "modbus_write_do", lua_uart_WriteDO);
  76. lua_register(g_Lua, "modbus_read_do", lua_uart_ReadDO);
  77. lua_register(g_Lua, "modbus_read_di", lua_uart_ReadDI);     
复制代码


常用的几个API操作说明:



QQ图片20200318081217.jpg

评分

参与人数 1金币 +20 收起 理由
zcan1 + 20 赞一个!

查看全部评分

回复

使用道具 举报

2

主题

34

回帖

40

积分

新手上路

积分
40
发表于 2020-3-18 08:45:48 | 显示全部楼层
很好奇这个lua脚本是运行在单片机里吗,那执行擦除MCU后不是啥都没了?有机会研究下
回复

使用道具 举报

3

主题

1222

回帖

1231

积分

至尊会员

积分
1231
发表于 2020-3-18 08:50:33 | 显示全部楼层
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2020-3-18 09:02:30 | 显示全部楼层
aaabbbad 发表于 2020-3-18 08:45
很好奇这个lua脚本是运行在单片机里吗,那执行擦除MCU后不是啥都没了?有机会研究下

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2020-3-20 12:03:58 | 显示全部楼层
更新下常用API的操作说明。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2022-2-9 11:41:12 | 显示全部楼层
脚本文件的上限是多少?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2022-2-9 11:43:06 | 显示全部楼层
zhanghonglang 发表于 2022-2-9 11:41
脚本文件的上限是多少?

可以将4GB的eMMC存满。
回复

使用道具 举报

4

主题

166

回帖

178

积分

初级会员

积分
178
发表于 2023-4-24 10:53:05 | 显示全部楼层
这个LUA是先注册一批函数,然后在程序外写一个.lua的脚本,将脚本拷贝内存中,运行对应的内存。
是这么个使用流程吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2023-4-24 12:37:04 | 显示全部楼层
yuanzhongda 发表于 2023-4-24 10:53
这个LUA是先注册一批函数,然后在程序外写一个.lua的脚本,将脚本拷贝内存中,运行对应的内存。
是这么个 ...

简单玩法流程

STM32-V6 LUA简单移植
https://www.armbbs.cn/forum.php? ... 4757&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 13:25 , Processed in 0.212693 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表