0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

掌握 LuatIO:GPIO 复用模式初始化配置全流程解析

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2026-01-23 15:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在使用 LuatIO 进行嵌入式应用开发时,合理配置 GPIO 的复用功能是实现外设控制的前提。本文全面解析 GPIO 引脚由普通 IO 转换为复用功能引脚的初始化流程,包括时钟使能、模式选择、速度设置与函数调用顺序,提供结构化配置思路与最佳实践建议。

LuatIO工具可以将模块内多个引脚同时支持的一个功能指定给配置的引脚使用,方便进行管脚复用配置操作,目前的主流型号都可以用此工具进行配置。

一、LuatIO工具在LuaTools的入口

LuatIO工具现已集成在LuaTools中,截图说明如下;

1. LuaTools如何初次下载LuatIO或者升级LuatIO版本?

wKgZPGlzEGWASmVLAAFYylVFwfs623.pngwKgZPGlzEHqAd2r_AANvetFrzV4519.png

2. LuatIO在LuaTools中的入口在哪里?

wKgZO2lzEMGAH1T1AADQKfdkvTM789.pngwKgZPGlzEOWAdm7tAAKqfkypfDg616.pngwKgZO2lzEQCACeClAAX1TQPydLU984.png

二、GPIO 配置

GPIO 配置的全过程,我们分为三部分进行说明,分别是:

1、LuatIO 可视化 GPIO 复用功能配置工具;

2、由 LuatIO 生成 pins_$model.json 文件;

3、API 库函数 pins 动态配置;

4、通过 LuaTools 将 pins_$model.json 文件下载到模组中;

1,LuatIO 工具

注意:LuatIO工具仅支持Win10及之上Windows操作系统

LuatIO工具使用; 目前LuatIO工具已集成在luatools中,可以在项目管理界面打开:

wKgZPGlzEeaAPkSEAAQeFhRFJhY783.png

LuatIO 界面截图如下:

wKgZO2lzEmWAfDvzAAQ4NSQQp8c107.png

其中:

左侧为 GPIO 复用功能配置选择栏,空白框内可以写该管脚相应的注释说明;

右侧为 Air780EPM 的管脚排列图,其中淡绿色部分为可以配置的 GPIO 管脚;

以 Air780EPM 开发板 V1.3 为例,根据其硬件实际使用情况配置后的截图如下:

wKgZPGlzErWAOZL7AAXlX_0OnAM848.png


2,生成 pins_$model.json 文件

生成对应型号的json文件分为以下几步

1.打开LuatIO配置工具。

wKgZPGlzEyWAde_AAARNTRQ8Jos008.png


2.点击型号选择

wKgZO2lzE1GAC9nSAAR6OHvpIAk997.png

3.配置自己需要复用的管脚

wKgZPGlzE3yAWG7XAARwKXHU_6w610.png

4.配置完成后管脚处会显示对应功能,右侧俯视图对应管脚显示会变暗,下方会显示对应功能。

wKgZPGlzE6WAGjg8AAQo1jLAIW8216.png

5.点击保存即可

生成.josn配置文件最新固件兼容三种命名,以Air780EPM为例:

pins_Air780EPM.json

pins_AIR780EPM.json

pins_air780epm.json

wKgZO2lzE92AciLQAAQW2CmlbZA986.png

2.1,生成 pins_Air8000A.json 文件

1.点击“保存”;

wKgZO2lzFA6AWGqKAAPxmb5nK84363.png

2.命名"pins_Air8000A";

wKgZPGlzFDKAAFfKAAPYixo5fmI132.png

说明:

(1)文件名必须严格遵守 pins_$model.json 格式:pins_Air8000A;

(2)pins_Air8000A.json 截图如下:

wKgZO2lzFMWALsl_AAJjKdecoVI076.png

2.2,生成 pins_Air780EPM.json 文件

1.点击"保存";

wKgZPGlzFPCAEtgFAAYwnWRtKd4229.png

2.命名"pins_Air780EPM";

wKgZPGlzFSWAWxa6AAUYOt7M7ME104.png

说明:

(1)文件名必须严格遵守 pins_$model.json 格式:pins_Air780EPM;

(2)pins_Air780EPM.json 截图如下:

wKgZO2lzFZ2AS2VDAAWe8QcRXlM831.pngwKgZO2lzFbOAcw-2AASPM63jnxc302.png

2.3,生成 pins_air8101.json 文件

1.点击"保存";

wKgZO2lzFeWASaE1AAOyi4HRoS0835.png

2.命名"pins_air8101.json";

wKgZO2lzFg6ARwZOAAGhGsaZ5cM137.png

说明:

(1)文件名必须严格遵守 pins_$model.json 格式:pins_air8101.json;

(2)pins_air8101.json 截图如下:

wKgZO2lzFlWAUEB3AAD2sMKA2fM114.png

3,API 库函数 pins 动态配置

首先,请使用 LuatIO 的可视化工具进行配置,如果不需要io复用功能通常用不到pins这个功能;

其次,本库的 API 属于高级用法, 仅动态配置管脚时使用(LuatIO 本来已经初始化好了,但在代码运行过程中需要对某个或某些 GPIO 的复用功能进行动态调整);

再次,pins 是 LuatOS 核心库,在脚本代码中不需要 require,可以直接使用;

pins.setup(pin, func)

在 pins_$model.json 文件初始化之后,再一次或多次指定某个或多个管脚的功能变化;

说明!此功能是为了动态修改管脚复用,99% 的用户可能不会用到本 API;

wKgZPGlzFx6AVbFzAAHWW87Io5g224.png

4,将 pins_$model.json 下载到模组

首先,本小节我们只针对不需要"API 库函数 pins 动态配置"的情况进行演示;

其次,即便需要"API 库函数 pins 动态配置"的情况,pins 的使用方法跟其它 API 核心库函数没有区别。

4.1,将 pins_Air8000A.json 下载到模组

1.以 Air8000A V2008固件为例;

截图如下:

wKgZO2lzGz6AecrxAANm6m-j4AU553.png

2.pins_Air8000A 保存在 json 文件夹内;

wKgZPGlzG2OAckOxAADBh-62IRc291.png

3.下载到 Air8000A 中;

wKgZO2lzG66AHIH-AAR4tGByASs569.png

4.2,将 pins_Air780EPM.json 下载到模组

1.以 Air780EPM 开发板 V1.3 出厂固件为例;

截图如下:

wKgZPGlzHBSAdXyfAAKqlz1MAJY418.png

2.pins_Air780EPM 保存在 json 文件夹内;

wKgZPGlzHDmAG1FIAAFFZzjOp7Q242.png

3.下载到 Air780EPM 开发板 V1.3 中;

wKgZO2lzHGmAXp0yAAOCLp0tVrA219.png

4.3,将 pins_air8101.json 下载到模组

1.以 Air8101 核心板为例,选择最新的固件;

wKgZPGlzHJ6AQMP3AATVl48AuLE251.png


2.将pins_air8101.json引脚配置文件增加到脚本和资源列表;

wKgZO2lzHMSAQI5xAAO5mUxIluc555.png

3.将pins_air8101.json 同代码一起下载到 Air8101 核心板中;

wKgZPGlzHO6APrb1AAOxqRtOhw8130.png

三,其它说明

1. Lua 代码中,需要声明调用 pins_Air780EPM.json 文件吗?

答案:

不需要;

2. 只有 Air780EPM 支持 pins_Air780EPM.json 和 API 库函数 pins 搭配的配置方式吗?

回答:

不是的;

注意!LuatIO 工具(pins_$model.json)和 API 函数 pins 都支持主推型号,老型号都不再支持。

3. 虽然该工具很方便,但我已经习惯了 mcu.altfun()函数配置,还可以继续使用吗?

回答:

不可以了;

Air780EPM 底层固件从 V2006 开始,将只支持 pins_Air780EPM.json 一种 GPIO 复用功能配置方式,之前的 mcu.altfun()方式将不再继续支持!遇到动态配置的情况,可以结合 API 库函数 pins 进行操作。

也就是说,如果您使用 Air780EPM 底层固件 V2005 或之前的版本已经量产出货,后续您因某种原因需要远程升级基于 V2006 及其后续底层固件版本的软件时,您的脚本文件也需要通过 pins_Air780EPM.json 的方式重新对 GPIO 复用功能进行配置,原来的 mcu.altfun()配置方式将会失效。

4. 为什么我在Docs 文档网站里还经常看到关于 mcu.altfun()函数的出现?

回答:

在整理了;

mcu.altfun()的 API 库函数说明已经从 Docs 上撤掉,但确实还有非常多的其它文档说明仍然"保留",我们可能要花一段时间才能完全"清除";

5. 如果未进行pins_Air780EPM.json的配置,代码可以运行吗?

回答:

可以运行;

会以Air780EPM各GPIO的默认功能执行;

如果所引用的GPIO复用功能跟默认功能不一致,代码就会无法执行。

6. 模组的demo和json文件需要分开烧录吗?

回答:

不用分开烧录,在项目管理界面添加自己的demo和配置好的文件后烧录一次即可。

今天的内容就分享到这里了~

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GPIO
    +关注

    关注

    16

    文章

    1337

    浏览量

    56587
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PC强实时运动控制(一):C#的EtherCAT总线初始化(下)

    通过使用配置工具导出ZAR文件进行EtherCAT总线初始化
    的头像 发表于 02-05 10:00 2798次阅读
    PC强实时运动控制(一):C#的EtherCAT总线<b class='flag-5'>初始化</b>(下)

    国民技术发布N32Cube芯片配置初始化代码生成工具

    1月30日,国民技术(NSING)正式发布N32Cube——芯片配置初始化代码生成工具,让时钟、引脚与外设的配置一目了然、轻松上手!
    的头像 发表于 02-02 15:26 1100次阅读
    国民技术发布N32Cube芯片<b class='flag-5'>配置</b>与<b class='flag-5'>初始化</b>代码生成工具

    MCU工程初始化,到底该不该交给工具?

    背景 工程初始化重复性高,但出错成本大。工程师常问:交给工具是不是会丢失掌控? 工具可做的事 时钟树、引脚复用、外设配置 工程生成、代码模板套用 参数校验和约束检查 工程师仍需做的事 特殊业务逻辑
    的头像 发表于 01-29 10:18 306次阅读
    MCU工程<b class='flag-5'>初始化</b>,到底该不该交给工具?

    EtherCAT总线初始化步骤

    的关键环节,涉及硬件配置、软件设置以及网络拓扑的建立。以下是EtherCAT总线初始化的详细步骤,结合实际应用场景和常见问题解决方案,为工程师提供系统的操作指南。 1. 硬件连接与物理层检查
    的头像 发表于 12-22 10:10 1136次阅读
    EtherCAT总线<b class='flag-5'>初始化</b>步骤

    CW32F030C8T6:GPIO配置的全攻略

    ) { GPIOA_INTFLAG_CLR(bv2);// 清除PA2中断标志 PB08_TOG();// 翻转PB8引脚状态(控制LED) } } 关键功能说明 GPIO初始化:通过结构体配置引脚
    发表于 11-13 06:38

    关于野火stm32开发板,自己构建库函数点亮LED中GPIO初始化函数的优化

    的代码分享给大家 1.野火原教程代码 1 **/** 2 *****函数功能:初始化引脚模式 3 *****参数说明: **GPIOx**,该参数为 **GPIO_TypeDef **类型的指针
    发表于 10-29 16:03

    GraniStudio:IO初始化以及IO资源配置例程

    1.文件运行 导入工程 双击运行桌面GraniStudio.exe。 通过引导界面导入IO初始化以及IO资源配置例程,点击导入按钮。 打开IO初始化以及IO资源配置例程所在路径,选中I
    的头像 发表于 08-22 17:34 1138次阅读
    GraniStudio:IO<b class='flag-5'>初始化</b>以及IO资源<b class='flag-5'>配置</b>例程

    GraniStudio:初始化例程

    1.文件运行 导入工程 双击运行桌面GraniStudio.exe。 通过引导界面导入初始化例程,点击导入按钮。 打开初始化例程所在路径,选中初始化.gsp文件,点击打开,完成导入。 2.功能
    的头像 发表于 08-22 16:45 1119次阅读
    GraniStudio:<b class='flag-5'>初始化</b>例程

    MCU外设初始化:为什么参数配置必须优先于使能

    在微控制器领域,初始化参数配置阶段至关重要。此时,虽无电源驱动,但微控制器在使能信号到来前,借初始化参数配置这一精细步骤,开启关键准备进程。初始化
    的头像 发表于 08-13 10:38 1051次阅读

    是否必须使用LuatIO?Air8000 GPIO配置与设计规范深度解析

    在Air8000的GPIO应用开发中,LuatIO的角色至关重要。本文剖析其必要性,结合设计注意事项,为开发者提供从配置到优化的流程指南。
    的头像 发表于 07-29 13:54 769次阅读
    是否必须使用<b class='flag-5'>LuatIO</b>?Air8000 <b class='flag-5'>GPIO</b><b class='flag-5'>配置</b>与设计规范深度<b class='flag-5'>解析</b>

    定义IO初始化结构体

    由上述IOPORT相关功能的枚举类型我们可以知道,在对IOPORT模块进行初始化时需要根据情况配置它们。因此我们定义一个IOPORT初始化的结构体类型IOPORT_Init_t,它的成员包括了由上述所有枚举类型所声明的变量,因此
    的头像 发表于 07-16 16:26 1663次阅读

    NVMe高速传输之摆脱XDMA设计之七:系统初始化

    直接采用PCIe实现NVMe功能,它的系统初始化流程主要分为链路训练、PCIe 初始化和 NVMe 初始化, 分别实现 PCIe链路连接、 PCIe 设备枚举
    发表于 07-04 09:14

    IM系列设备过载故障:界面初始化终止的诊断流程与修复指南

    当 IM 系列设备出现过载故障导致界面初始化终止时,通常表现为设备启动后操作界面无显示、指示灯异常闪烁或初始化进度条停滞不前,同时可能伴随设备运行异响或异常发热。初步判断时,可观察设备是否有错
    的头像 发表于 06-28 09:47 1477次阅读

    物联网开发提速秘籍:LuatIO可视GPIO工具,效率翻倍!

    是否被GPIO的复杂配置拖慢项目进度?LuatIO以图形界面重构开发流程,从参数设定到信号映射
    的头像 发表于 06-09 15:54 779次阅读
    物联网开发提速秘籍:<b class='flag-5'>LuatIO</b>可视<b class='flag-5'>化</b><b class='flag-5'>GPIO</b>工具,效率翻倍!

    LuatIO:一键可视,让GPIO配置成为物联网开发的“丝滑体验”!

    面对硬件接口配置的琐碎工作,LuatIO提供全新解决方案——可视编辑器将引脚管理变为“所见即所得”,实时模拟与错误提示功能确保零失误,开发速度直线飙升!   本文以Air780EPM为例
    的头像 发表于 06-04 16:28 876次阅读
    <b class='flag-5'>LuatIO</b>:一键可视<b class='flag-5'>化</b>,让<b class='flag-5'>GPIO</b><b class='flag-5'>配置</b>成为物联网开发的“丝滑体验”!