电子说
本文将解析4G模组GPIO编程技巧,从概述、软硬件环境准备、示例等详细道来:
一、GPIO 概述
GPIO 是通用型输入输出的简称,一个 GPIO 引脚可以用于输入、输出或其他特殊功能。
二、演示功能概述
本文将介绍 724UG GPIO 的输入与输出 DEMO 讲解与效果演示。
三、准备硬件环境
3.1 开发板准备
使用 Air724UG-NFM 开发板,如下图所示:
此开发板的详细使用说明参考:
https://docs.openluat.com/air724ug/product/
Air724UG 产品手册 中的 《EVB_Air724UG_AXX开发板使用说明》,写这篇文章时最新版本的使用说明为:《EVB_Air724UG_A14开发板使用说明》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明文档。
3.2 数据通信线
请准备一根用于连接 Air724UG-NFM 开发板和 PC 电脑的数据线,该数据线将实现业务逻辑的控制与交互。
USB 数据线(其一端为 micro-B 接口(俗称老安卓口),用于连接 Air724UG-NFM 开发板)。通常,这种数据线的外观如下示意图所示:
USB 数据线:此数据线不仅用于为测试板供电,还可用于查看抓取 lua 脚本上层和底层 core 日志。其一端为 micro-B 接口,连接 Air724UG-NFM 开发板;另一端为标准 USB 接口,连接 PC 电脑。
3.3 PC 电脑
WINDOWS 系统,其他暂无特别要求;
四、准备软件环境
4.1 源码和工具
724UG 模块使用固件为 LuatOS-Air_V4030_RDA8910_TTS_NOLVGL_FLOAT.pac
下载最新版本的底层 CORE,解压后会出现多个版本的固件,本教程使用的是 LuatOS-Air_V4030_RDA8910_TTS_NOLVGL_FLOAT.dfota.bin。
本教程使用的 demo:
https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/gpio/gpioSingle
将固件和脚本烧录到模块中,使用说明参考:
https://docs.openluat.com/Luatools/
4.2 烧录代码
首先,确保你的 Luatools 的版本大于或者等于 3.0.6 版本.
在 Luatools 的左上角上有版本显示的,如图所示:
Luatools 版本没问题的话, 就点击 Luatools 右上角的“项目管理测试”按钮,如下图所示:
这时会弹出项目管理和烧录管理的对话框,如下图:
选择对应的项目烧录代码。
五、GPIO 软硬件资料
5.1 相关硬件接口
Air724UG 模块引脚共支持 28 个 GPIO,部分引脚上电前后状态不同,如使用这些管脚,需根据实际情况使用。
管脚定义:
参考硬件设计手册中的管脚描述:
https://docs.openluat.com/air724ug/product/
5.2 相关 API 介绍
GPIO 相关 API:
https://doc.openluat.com/wiki/21?wiki_page_id=2286
六、功能示例
6.1 GPIO 简介
GPIO(General-Purpose Input/Output) 指通用输入输出口。在软件运行期间能够动态配置和控制的通用引脚,实现某时刻电平状态的输出与输入,即可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。
6.2 输入模式简介
GPIO 的输入模式是指将 GPIO 配置为接收外部信号的模式。
6.2.1 核心代码
6.2.2 示例效果展示
使用杜邦线短接 VDD1V8 和 GPIO19。
6.3 输出模式简介
GPIO 的输出模式是指将 GPIO 配置为向外界输出高低电平的模式。
6.3.1 核心代码
6.3.2 示例效果展示:
6.4 中断模式简介
当 GPIO 检测到电平变化且满足触发条件时,触发中断,CPU 就会暂停当前任务,执行中断回调函数中的内容,当中断回调函数中的内容执行完毕时,再继续执行之前没有执行完的任务。除了中断回调方式,还有中断计数模式。中断计数模式时,中断时不回调。
6.4.1 核心代码
6.4.2 示例效果展示:
使用杜邦线将 GPIO13 短接下 VDD1V8.
七、总结
本节我们学习了有关 GPIO 的知识。其中包括输入模式,输出模式,中断模式。
合宙 Cat.1 模块具有多种不同的 GPIO 接口,部分 GPIO 口同时可复用为其他功能,并且模块的 GPIO 管脚输入输出电压能力按照不同的电压域区分,特珠管脚的使用需要打开对应的电压域方能使用。
八、常见问题
1. 为什么 GPIO4 管脚操作没反应?
答:GPIO4 管脚为 VCC_LCD 电压域,需要先配置 pmd.ldoset(2,pmd.LDO_VLCD)打开,才能正常操作该管脚。
九、扩展
脉冲统计个数:
使用杜邦线短接 GPIO23 和 GPIO11
示例效果展示:
分享完毕。
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !