合宙LuatOS的个人空间 https://www.eechina.com/space-uid-176273.html [收藏] [复制] [RSS]

博客

系统掌握之道:GPIO输出/输入/中断开发全流程及开源案例

已有 84 次阅读2025-8-25 16:27 |个人分类:4G模组| 物联网, 单片机, 4G模块, 通讯模组, 嵌入式硬件

想要系统掌握GPIO开发?本文构建完整知识体系,从基础配置到高级应用,详细讲解输出、输入及中断的全流程,并辅以开源案例,让你由浅入深,逐步精通!

GPIO (General-Purpose Input/Output) 是通用输入输出接口的简称,其最大特性就是使用极为灵活,可以通过编程实现丰富应用。无论是点亮一个LED、读取一个按键,还是驱动更复杂的传感器和模块,都离不开GPIO的操作。
 

LuatOS开发提供的简洁API使得GPIO编程变得简单高效,降低了嵌入式开发的门槛,新手开发者也能快速上手。

本文将以Air780EPM V1.3开发板为例,分享LuatOS开发的GPIO输出/输入/中断应用示例要点。熟练掌握这三种GPIO工作模式,开发者能够实现大多数基础的硬件交互需求,为更复杂的物联网应用打下坚实基础。

最新源码及实操教程详见:https://docs.openluat.com/air780epm/luatos/app/driver/gpio

 


一、GPIO输出模式

GPIO的输出模式是指将GPIO配置为向外界输出高低电平的模式,常用于驱动LED、继电器、蜂鸣器等设备。


1.1 输出模式测试示例

Air780EPM开发板上的网络指示灯(蓝灯)与GPIO27相连,将引脚初始化为输出,并周期性改变其电平,从而实现每隔1秒亮0.5秒的呼吸灯闪烁效果。


1.2 示例效果
二、GPIO输入模式

GPIO的输入模式是指将GPIO配置为接收外部信号的模式,常用于检测按键、开关等信号。


2.1 输入模式测试示例

配置GPIO24为输入模式,GPIO27(开发板蓝灯)为输出模式:

GPIO24检测到有高低电平输入后,会返回GPIO24当前获取到的电平为高还是低,高返回值为1,低返回值为0;

将这个返回值,传给GPIO27(LED),为0则GPIO27输出低电平(LED灯灭),为1则输出高电平(LED灯亮)。


2.2 示例效果

准备一根杜邦线,将Air780EPM开发板上的GPIO24引脚在 GND/3.3V引脚中间切换,即可看到LED灯亮灭变化。

 三、GPIO中断模式

中断模式提供了高效的事件响应机制,特别适合需要实时处理的应用,如:紧急按键响应、外部事件触发、低功耗状态下的唤醒等。

当GPIO检测到电平变化且满足触发条件时,触发中断,CPU 就会暂停当前任务,执行中断回调函数中的内容,当中断回调函数中的内容执行完毕时,再继续执行之前没有执行完的任务;除了中断回调方式,还有中断计数模式(中断时不回调)。


3.1 中断模式(触发)测试示例

配置GPIO24为中断模式,上升沿(gpio.RISING)和下降沿(gpio.FALLING)均触发(gpio.BOTH)。


3.2 中断模式(触发)示例效果
 

将Air780EPM开发板上的GPIO24引脚在插拔VDD-EXT之间来回切换,即可在日志中看到打印。当GPIO24接触高/低电平时,均会触发中断:


3.3 中断模式(计数)测试示例

配置gpio24为中断计数模式,配置PWM4输出1kHZ占空比50%的方波作为信号源,每隔1秒统计一次中断触发的次数。


3.4 中断模式(计数)示例效果

硬件上将PWM4(开发板的网络指示灯与GPIO27相连,GPIO27同时也是PWM4通道)与GPIO24连接起来,通过PWM4输出中断(高低电平变化的方波),再通过GPIO24统计输出的中断数。

 

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


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部