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

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

3天内不再提示

如何配置GPIO为中断功能呢?

工程师邓生 来源:未知 作者:刘芹 2023-10-30 09:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

如何配置GPIO为中断功能呢?

GPIO在嵌入式系统中经常用于控制外设,如LED、摄像头、传感器等。除此之外,GPIO还可以被配置为中断功能,用于检测输入信号的变化,从而触发中断服务程序。本文将介绍如何在嵌入式系统中配置GPIO为中断功能。

一、GPIO基础

GPIO是General Purpose Input/Output的缩写,中文意为通用输入输出口。简单来说,GPIO是一组可编程的通用I/O端口,可以设置为输入模式或输出模式,用于连接嵌入式系统的外部设备、传感器或其他模块。

头文件:#include "gpio.h"

二、GPIO配置

初始化GPIO之前,需设置GPIO的工作模式,即按照需要设置GPIO的输入输出方向。常见的模式有三种:

1.输入模式

输入模式下,GPIO端口会作为外部信号的输入口,用于检测外设给出的信号。

gpio_mode_set(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_0);//PA0输入,无上下拉,外设接高低电平

2.输出模式

输出模式下,GPIO端口会作为外部信号的输出口,用于控制外设等。

gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT_PP, GPIO_PUPD_NONE, GPIO_PIN_0);//PA0输出,无上下拉,外设接高低电平

3.复用模式

复用模式下,GPIO端口既可以作为输入,也可以作为输出,通常用于与特定功能模块协同工作,如UART、SPI和I2C等。

gpio_mode_set(GPIOA, GPIO_MODE_AF_PP, GPIO_PUPD_NONE, GPIO_PIN_0);//PA0复用模式,无上下拉,外设接高低电平

三、中断配置

配置GPIO中断需要三个步骤:

1.使能GPIO外部中断

gpio_exti_source_select(GPIO_PortSourceGPIOC, GPIO_PinSource0);//GPIOC0触发外部中断

2.使能中断线

nvic_irq_enable(EXTI0_IRQn, LL_PRIORITY_DEFAULT, EXTI0_IRQ_HANDLER);//使能中断,EXTI0_IRQ_HANDLER为中断处理函数名

3.设置中断触发方式

EXTI_TriggerTypeDef trigger;
trigger = EXTI_Trigger_Falling; //设置中断触发方式为下降沿触发
exti_init(EXTI_Line0, trigger, LL_EXTI_PULL_NONE);//设置GPIOC0触发的中断线,LL_EXTI_PULL_NONE不开启上下拉

中断服务程序:

void EXTI0_IRQHandler(void)
{
if (exti_get_flag_status(EXTI_Line0)) //判断中断线0是否被触发
{
//执行中断服务程序
exti_clear_flag(EXTI_Line0); //清除中断标志位
}
}

这样,就可以使用GPIO对外设进行中断检测并执行相应的服务程序了。

总结

GPIO作为嵌入式系统中常用的外设接口,可以配置为输入输出端口,也可与其他模块协同工作。配置GPIO为中断功能,可以实现对外部信号的检测和响应,扩展系统功能。以上就是配置GPIO为中断功能的相关操作步骤,希望对大家有所帮助。

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

    关注

    41

    文章

    3716

    浏览量

    133076
  • GPIO
    +关注

    关注

    16

    文章

    1313

    浏览量

    55700
  • 触发中断
    +关注

    关注

    0

    文章

    11

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32F030C8T6:GPIO配置的全攻略

    : 输入模式(浮空、上拉、下拉)。 输出模式(推挽、开漏)。 复用功能(UART、SPI、I2C等外设映射)。 模拟模式(ADC输入)。 中断支持:所有GPIO均可配置
    发表于 11-13 06:38

    【NCS随笔】如何进入system_off深度睡眠模式以及配置GPIO中断唤醒

    【NCS随笔】如何进入system_off深度睡眠模式以及配置GPIO中断唤醒 本文章主要是讲解NCS下面使用nRF54L15如何进入system_off模式,以及如何配置通过按键唤醒
    的头像 发表于 09-29 00:56 468次阅读
    【NCS随笔】如何进入system_off深度睡眠模式以及<b class='flag-5'>配置</b><b class='flag-5'>GPIO</b><b class='flag-5'>中断</b>唤醒

    何时使用 GPIO 中断和外部中断

    何时使用 GPIO 中断和外部中断
    发表于 08-26 07:27

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

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

    GPIO配置的工作原理是什么?

    我使用 EZ-USB 配置实用程序,我想知道是否有人知道 GPIO 配置的工作原理。 例如,GPIO0 可以用作传感器复位,我知道这个 GPIO
    发表于 05-19 06:56

    FCX3无法进入GPIO中断是怎么回事?

    我尝试将GPIO20配置中断引脚,若输入上升沿,则让GPIO24引脚输出低电平;若输入下降
    发表于 05-14 07:38

    如何同时使用CyU3PMipicsiInitializeGPIO和CyU3PGpioInit的中断功能

    开发环境:cy3065CX3/ SDK Version 1.3.5 在初始化阶段,先初始化MIPI模块。调用CyU3PMipicsiInitializeGPIO 接口,然后我想配置GPIO 44
    发表于 05-14 07:04

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

    1、实验简介 本实验将演示如何在小凌派-RK2206开发板上使用IOT库的GPIO中断模式,进行GPIO编程开发。 例程将创建一个任务,通过配置GP
    发表于 04-21 11:08

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

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

    HTR3310 10路LED驱动器和GPIO控制器中文手册

          HTR3310是一款10路多功能LED驱动器和GPIO控制器2.5V~5.5V电源供电。10个IO端口中的任何一个都可以配置LED模式或
    发表于 04-14 16:31 2次下载

    HTR3316 16路LED驱动器和GPIO控制器中文手册

         HTR3316是一款16路多功能LED驱动器和GPIO控制器,2.5V~5.5V电源供电。16个IO端口中的任何一个都可以配置LED模式或
    发表于 04-11 17:51 2次下载

    为什么GPIO配置总是出问题?

    GPIO配置好后,串口通信或其他外设功能又出问题了?这些问题,表面上看似乎是硬件故障或代码出错,但实际上,大多数问题都出在GPIO配置的底
    的头像 发表于 04-07 11:59 1360次阅读
    为什么<b class='flag-5'>GPIO</b><b class='flag-5'>配置</b>总是出问题?

    GPIO模块与其他外设的连接方法

    输入或输出模式。在输入模式下,GPIO引脚可以读取外部信号的状态;在输出模式下,它们可以向外部设备发送信号。此外,GPIO引脚还可以被配置特殊功能
    的头像 发表于 01-09 09:48 1480次阅读

    GPIO错误排查与解决

    在嵌入式系统和微控制器编程中,通用输入输出(GPIO)是最常见的接口之一。然而,在使用GPIO时,我们可能会遇到各种错误。 1. 理解GPIO GPIO是微控制器上的一组引脚,可以被
    的头像 发表于 01-09 09:46 3699次阅读

    如何配置GPIO引脚

    引脚是微控制器上的一个多功能接口,可以被配置数字输入、数字输出、模拟输入/输出或特殊功能。在数字模式下,GPIO引脚可以是高电平(逻辑1)
    的头像 发表于 01-09 09:39 1861次阅读