轻松掌控硬件接口:LuatIO可视化工具,物联网开发的“效率加速器”!
想要快速搭建物联网设备?LuatIO的GPIO可视化配置工具将复杂设置转化为简单拖拽,自动适配多种协议,让开发者从底层调试中解放,专注创新,效率提升立竿见影!
本文以Air780EPM为例,分享LuatIO工具相关内容。
最新资料详见:http://docs.openluat.com/air780epm/common/luatio/
一、 LuatIO工具
Air780EPM共有38个GPIO,这38个GPIO又可以复用为各种各样的功能,如上表所示。
比如PIN66:
什么时候用作I2C0_SDA?
什么时候用作I2C1_SDA?
什么时候用作GPIO19?
什么时候用作PWM1?
默认功能是什么?
如何进行初始化配置?
如何在初始化之后进行动态的配置?
……
LuatOS之前的做法是:通过mcu.altfun()函数进行配置,这个函数非常晦涩难懂,因为不仅要涉及到Air780EPM所使用主芯片对应的PAD 脚,还要知晓该PAD脚所需配置复用功能的AltFunc顺序号,对初学者非常不友好。
基于此,我们设计了可视化GPIO配置工具—— LuatIO由此工具生成对应的"pins_$model.json"文件,结合API库函数pins动态配置,最后以脚本的形式下载到模组中,即可完成该模组型号的GPIO复用配置。
二、如何使用LuatIO配置GPIO
GPIO配置的全过程,我们分为四部分进行说明:
2.1 LuatIO可视化GPIO配置工具
目前单独的LuatIO工具只是阶段性的存在,后续会集成到LuaTools中,一个工具入口即可完成尽可能多的功能。
1)下载安装LuatIO工具
最新LuatIO工具下载链接:http://docs.openluat.com/air780epm/common/luatio/
注意:LuatIO工具仅支持Win10及之上Windows操作系统。
2)LuatIO界面说明
如上截图,其中:
左侧为GPIO复用功能配置选择栏,空白框内可以写该管脚相应的注释说明;
右侧为Air780EPM的管脚排列图,其中淡绿色部分为可以配置的GPIO管脚。
以Air780EPM开发板V1.3为例,根据其硬件实际使用情况配置后的截图如下:
2.2 生成pins_Air780EPM.json文件
1)点击保存:
2)命名"pins_Air780EPM":
注意事项:
文件名必须严格遵守pins_$model.json格式:pins_Air780EPM;
Air780EPM中的“Air”为大小写组合,“EPM”必须为大写。
生成的pins_Air780EPM.json文件截图如下:
2.3 API库函数pins动态配置
请使用LuatIO可视化工具进行配置,你通常不需要使用这个功能;
本库的API属于高级用法,仅动态配置管脚时使用(LuatIO本来已经初始化好了,但在代码运行过程中需要对某个或某些GPIO的复用功能进行动态调整);
pins是LuatOS核心库,在脚本代码中不需要require,可以直接使用。
关于pins的详细说明参见:http://docs.openluat.com/air780epm/luatos/api/core/pins/
2.4 将pins_Air780EPM.json下载到模组
本小节我们只针对不需要“API库函数pins动态配置”的情况进行演示;即便需要的情况下,pins的使用方法跟其它API核心库函数没有区别。
1)以Air780EPM开发板V1.3出厂固件为例:
最新固件下载详见:https://gitee.com/openLuat/LuatOS-Air780EPM/tree/master/demo
2)pins_Air780EPM保存在json文件夹内:
3)下载到Air780EPM开发板V1.3中:
三、其他相关说明
3.1 Lua代码中,需要声明调用pins_Air780EPM.json文件吗?
回答:不需要。更详细的说明,参见资料中心函数描述。
pins.loadjson(path)函数详见:http://docs.openluat.com/air780epm/luatos/api/core/pins/
注意:LuatIO工具(pins_$model.json)和API函数pins都支持主推型号,老型号都不再支持。
3.2 虽然该工具很方便,但我已经习惯了mcu.altfun()函数配置,还可以继续使用吗?
回答:不可以了。
Air780EPM底层固件从V2005开始,将只支持pins_Air780EPM.json 一种GPIO复用功能配置方式,之前的mcu.altfun()方式将不再继续支持!遇到动态配置的情况,可以结合API库函数pins进行操作。
也就是说,如果您使用Air780EPM底层固件V2004或之前的版本已经量产出货,后续您因某种原因需要远程升级基于V2005及其后续底层固件版本的软件时——您的脚本文件也需要通过pins_Air780EPM.json的方式,重新对GPIO复用功能进行配置,原来的mcu.altfun()配置方式将会失效。
3.3 为什么我在合宙的Docs文档网站里,还经常看到关于mcu.altfun()函数的出现?
回答:在整理了。mcu.altfun()的API库函数说明已经从Docs上撤掉,但确实还有非常多的其它文档说明仍然“保留”,我们可能要花一段时间才能完全"清除"。
3.4 LuatIO功能将来会集成到LuaTools中吗?
回答:一定会的。目前单独的LuatIO工具只是阶段性的存在,很快就会集成到LuaTools中,大家通过一个工具入口即可完成尽可能多的功能。
3.5 如果未进行pins_Air780EPM.json的配置,代码可以运行吗?
回答:可以运行,会以Air780EPM各GPIO的默认功能执行;如果所引用的GPIO复用功能跟默认功能不一致,代码就会无法执行。
今天的内容就分享到这里了~