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

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

3天内不再提示

实战驱动学习:用开源代码玩转GPIO输出/输入/中断开发!

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2025-08-25 13:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

学习开发最有效的方式就是动手实践!本文以实战为核心,通过开源示例代码带你快速上手配置GPIO输出、处理输入信号、利用中断优化系统响应,让学习成果立竿见影!

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

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

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

wKgZPGir7SKAddzWABHVW8nzZbA756.png

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

一、GPIO输出模式

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

1.1 输出模式测试示例

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

wKgZO2ir7YOATejyAAOkeZPG-mc664.png

1.2 示例效果

wKgZPGir7ceABi9ZAAR-oOAZmf0714.png

wKgZPGir7daAO2rmAAZTDwiGcyQ942.png

二、GPIO输入模式

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

2.1 输入模式测试示例

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

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

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

wKgZO2ir7ieAUEUMAAPq0SOx4A8230.png

wKgZPGir7j2ATlgaAAB_TLTfCs8457.png


2.2 示例效果

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

wKgZO2ir7n2ATb2jAAW0bIu3YRM091.png

三、GPIO中断模式

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

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

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

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

wKgZO2ir7uyAAfkgAASALziFSLo061.png

wKgZPGir7wSAArZXAADeeJ5Bd-o819.png

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

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

wKgZO2ir72GAN_3hAAdlbCUFe88917.png

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

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

wKgZPGir75yAE4V5AAQ72qQ8Ri8664.png

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

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

wKgZO2ir7-uAfR3YAAdJnWllvos907.png

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

审核编辑 黄宇

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

    关注

    16

    文章

    1313

    浏览量

    55706
  • 开源代码
    +关注

    关注

    0

    文章

    41

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【书籍评测活动NO.67】成为硬核Linux开发者:《Linux 设备驱动开发(第 2 版)》

    sysfs接口,使用libgpiod库在用户空间便捷操作GPIO。还介绍了Linux内核输入子系统,强调轮询输入设备与中断
    发表于 11-17 17:52

    分享一个驱动开发工程师学习路线图

    、printk排查驱动逻辑问题,会用J-Link调试内核态代码,掌握万表、示波器定位硬件连接故障(如虚焊、电平异常)。 实战项目 完成3个基础项目:①
    发表于 11-12 10:44

    【迅为RK3568开发板NPU实战】别再闲置你的NPU!手把手教你玩转RKNN-Toolkit2 的使用

    【迅为RK3568开发板NPU实战】别再闲置你的NPU!手把手教你玩转RKNN-Toolkit2 的使用
    的头像 发表于 11-11 14:21 538次阅读
    【迅为RK3568<b class='flag-5'>开发</b>板NPU<b class='flag-5'>实战</b>】别再闲置你的NPU!手把手教你<b class='flag-5'>玩转</b>RKNN-Toolkit2 的使用

    开源电机驱动,免费学习

    CW32L010_BLDC_ESC_Driver电机驱动开发板 项目与资料开源项目详细开源资料可点击复制链接转到浏览器: CW32L010_BLDC_ESC_Driver电机
    的头像 发表于 07-01 14:51 579次阅读
    <b class='flag-5'>开源</b>电机<b class='flag-5'>驱动</b>,免费<b class='flag-5'>学习</b>

    实战低功耗应用:实网功耗测试数据公开,附开源代码指南!

    如何打造高效能的低功耗应用?本文基于实际网络场景的功耗测试数据,揭示性能优化核心技巧,并附上开源代码,供开发者直接参考与调试。 本文将以Air8000核心板为例,带你快速上手三种功耗模式。在实际
    的头像 发表于 06-17 14:55 1730次阅读
    <b class='flag-5'>实战</b>低功耗应用:实网功耗测试数据公开,附<b class='flag-5'>开源代码</b>指南!

    开源电机驱动,免费直播学习!

    开源电机驱动,免费直播学习!
    的头像 发表于 06-13 10:07 1279次阅读
    <b class='flag-5'>开源</b>电机<b class='flag-5'>驱动</b>,免费直播<b class='flag-5'>学习</b>!

    迅为RK3568开发驱动指南GPIO子系统GPIO子系统API函数的引入

    迅为RK3568开发驱动指南GPIO子系统GPIO子系统API函数的引入
    的头像 发表于 05-29 14:05 829次阅读
    迅为RK3568<b class='flag-5'>开发</b>板<b class='flag-5'>驱动</b>指南<b class='flag-5'>GPIO</b>子系统<b class='flag-5'>GPIO</b>子系统API函数的引入

    迅为RK3568驱动指南GPIO子系统实战:实现动态切换引脚复用功能

    迅为RK3568驱动指南GPIO子系统实战:实现动态切换引脚复用功能
    的头像 发表于 05-22 14:27 1675次阅读
    迅为RK3568<b class='flag-5'>驱动</b>指南<b class='flag-5'>GPIO</b>子系统<b class='flag-5'>实战</b>:实现动态切换引脚复用功能

    NCA9555 具有16位通并行I²C总线数输入输出GPIO扩展功能

    NCA9555是一款24引脚CMOS器件,提供16位通并行I2C总线数输入/输出GPIO扩展功能。它和ACPI电源开关,传感器,按键,LED和风扇等应用的额外I/O口需求提供了简单的
    发表于 05-19 18:02 0次下载

    89元起!开源国产FPGA开发套件,提供原理图及配套参考例程的源代码

    提供开源原理图及配套参考例程的源代码。接口丰富,为用户提供基本的硬件环境*盘古1/2KG板卡上的Jtag原理图*盘古
    的头像 发表于 05-13 08:07 766次阅读
    89元起!<b class='flag-5'>开源</b>国产FPGA<b class='flag-5'>开发</b>套件,提供原理图及配套参考例程的<b class='flag-5'>源代码</b>

    基于小凌派RK2206开发板:OpenHarmony如何使用IoT接口控制GPIO中断

    1、实验简介本实验将演示如何在小凌派-RK2206开发板上使用IOT库的GPIO中断模式,进行GPIO编程开发。例程将创建一个任务,通过配置
    的头像 发表于 04-21 10:39 889次阅读
    基于小凌派RK2206<b class='flag-5'>开发</b>板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>GPIO</b><b class='flag-5'>中断</b>

    基于小凌派RK2206开发板:OpenHarmony如何使用IoT接口控制GPIO外设

    1、案例简介本案例主要是如何在小凌派-RK2206开发板上使用IOT库的GPIO接口,进行GPIO编程开发。例程将创建一个任务,通过配置GPIO
    的头像 发表于 04-11 15:36 1612次阅读
    基于小凌派RK2206<b class='flag-5'>开发</b>板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>GPIO</b>外设

    开源闭环步进电机控制器(原理图+源代码

    开源闭环步进电机控制器(原理图+源代码),采用PID算法控制,AS5047磁性角度检测传感器,高效防失步,快速学习PIDS算法,掌握单片机系统开发。 纯分享贴,有需要可以直接下载附件
    发表于 03-20 13:32

    源代码加密、源代码防泄漏c/c++与git服务器开发环境

    源代码加密对于很多研发性单位来说是至关重要的,当然每家企业的业务需求不同所用的开发环境及开发语言也不尽相同,今天主要来讲一下c++及git开发环境的
    的头像 发表于 02-12 15:26 869次阅读
    <b class='flag-5'>源代码</b>加密、<b class='flag-5'>源代码</b>防泄漏c/c++与git服务器<b class='flag-5'>开发</b>环境

    单片机学习—C51源代码和Proteus仿真文件

    单片机学习—C51源代码和Proteus仿真文件.zip, 有各种例子
    发表于 02-10 13:46 2次下载