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为中断功能的相关操作步骤,希望对大家有所帮助。

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

    关注

    40

    文章

    3436

    浏览量

    128234
  • GPIO
    +关注

    关注

    16

    文章

    1138

    浏览量

    50601
  • 触发中断
    +关注

    关注

    0

    文章

    11

    浏览量

    6533
收藏 人收藏

    评论

    相关推荐

    STM32中断分组及外部中断配置过程分享

    STM32中断分组   STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32 的强大之处。STM32 通过根据引脚的序号不同将众多
    发表于 04-08 08:05

    PSOC6 GPIO无法触发中断的原因?怎么解决?

    ),但是gpio管脚的中断处理函数却未触发。 GPIO配置如下: 中断服务程序以及初始化代码如下: static void Charge
    发表于 02-02 08:01

    tc387是否可以将配置外部中断的引脚读取标准输入gpio

    是否可以将配置外部中断的引脚读取标准输入 gpio? 例如: 如果我配置 ifx scu_r
    发表于 01-26 07:55

    ADPD105用示波器测量,GPIO0没有中断信号输出是为什么?

    GPIO0提供中断功能) 但是用示波器测量,GPIO0没有中断信号输出。请帮忙确认一下,我的配置
    发表于 12-05 07:53

    STM32如何配置外部中断?STM32外部中断配置步骤

    STM32如何配置外部中断?STM32外部中断配置步骤  作为一款现代化的微控制器,STM32系列芯片在各种应用场合中广泛应用。其中最常见的应用是外部
    的头像 发表于 10-26 17:47 2125次阅读

    STM32使用GPIO配置的5种方式

    采用五种不同的方式,具体如下: 一、使用直接寄存器访问 这种方式是最原始的GPIO访问方式,直接访问GPIO的控制寄存器来配置相应的复用功能,以实现对
    的头像 发表于 10-26 17:42 783次阅读

    如何配置GPIO中断功能

    拉,1:上拉,2:下拉 <drv_level>:驱动能力(上下拉力度),可取值 0~3,越高驱动能越高。 :io 的初始值 如果把引脚配置中断功能,一般在上写上6。另
    发表于 10-26 17:38

    GPIO配置不同输出速度会有什么影响

    单片机GPIO配置不同输出速度有何区别?
    的头像 发表于 09-18 15:43 1396次阅读
    <b class='flag-5'>GPIO</b><b class='flag-5'>配置</b>不同输出速度会有什么影响

    通用GPIO和外部中断EXTI

    = fAHB/2 = 16 MHz 可配置的最大输出频率40MHz 超低的漏电流50nA 所有83个GPIO口都可以配置外部
    发表于 09-12 07:08

    请问为什么配置P3.3GPIO中断无效?

    为什么配置P3.3GPIO中断源无效?看技术手册里写的是既可以配置GPIO
    发表于 08-24 07:40

    STM32的GPIO在实际开发设计的使用配置和技巧

    一、前言 本篇开始对STM32的GPIO在实际开发设计中的使用配置和技巧进行探讨,可以先去回顾下之前介绍的GPIO的相关理论基础知识包括基本结构,工作模式和寄存器原理。 了解过STM32的GP
    的头像 发表于 06-22 10:22 524次阅读
    STM32的<b class='flag-5'>GPIO</b>在实际开发设计的使用<b class='flag-5'>配置</b>和技巧

    一文详解GPIO的输出配置

    芯片供电的引脚群称为电源域,还有类似复位,地址配置等等称为逻辑域,还有原生支持I2C,SPI等等通讯的称为通讯域,搭建小系统用的引脚称为系统域。本节我们主要讲述不具有特定功能GPIO域。(本节
    发表于 06-14 16:41 1918次阅读
    一文详解<b class='flag-5'>GPIO</b>的输出<b class='flag-5'>配置</b>

    一文详解GPIO的输入配置

    芯片供电的引脚群称为电源域,还有类似复位,地址配置等等称为逻辑域,还有原生支持I2C,SPI等等通讯的称为通讯域,搭建小系统用的引脚称为系统域。本节我们主要讲述不具有特定功能GPIO域。(本节
    发表于 06-14 16:41 2973次阅读
    一文详解<b class='flag-5'>GPIO</b>的输入<b class='flag-5'>配置</b>

    MIMX RT1024将GPIO配置中断,无法找到特定的寄存器来读取XBAR中的值?

    大家好, 我正在使用 MIMX RT1024,我想将 GPIO 配置中断,我想测量中断信号时序值,即信号保持高电平或低电平的时间。我无法找
    发表于 06-08 07:43

    MSPM0L1306开发板教程之GPIO中断

    前面已经演示了如何配置GPIO的输入和输出,这次就接着讲GPIO中断如何使用。
    的头像 发表于 05-14 09:40 2255次阅读
    MSPM0L1306开发板教程之<b class='flag-5'>GPIO</b>的<b class='flag-5'>中断</b>