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

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

3天内不再提示

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

工程师邓生 来源:未知 作者:刘芹 2023-10-26 17:47 次阅读

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

作为一款现代化的微控制器,STM32系列芯片在各种应用场合中广泛应用。其中最常见的应用是外部中断。本文将详细介绍如何在STM32中配置外部中断。

1.了解STM32的外部中断结构

在STM32中,外部中断是由NVIC(Nested Vector Interrupt Controller)进行控制的。STM32 的芯片可以选择4个方向上跌沿触发或上升沿触发的外部中断线。这些中断线可以通过中断线控制器(EXTI)进行设置,并可以绑定到不同的GPIO端口上,以实现具体的外部中断功能。在进行外部中断的初始化过程中,需要配置外部中断的触发方式、中断优先级和中断使能等参数

2.配置外部中断的触发方式

STM32支持上升沿、下降沿和双边沿触发方式。在使用STM32的外部中断时,需要通过EXTI设置中断线和触发方式。配置触发方式的具体代码如下:

EXTI_InitStructure.EXTI_Line = EXTI_LineX; //X表示具体的中断线号(0~15)
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_X; //X是具体的触发方式(上升沿、下降沿或双边沿)

3.配置外部中断的中断优先级

在STM32的中断系统中,外部中断也需要有中断优先级来确保系统的正常运行。在配置外部中断时,需要指定中断的优先级。在设置中断优先级时,需要设置中断组和中断响应等级。STM32中断系统支持4个中断优先级分组方式,控制器可以通过设置NVIC_IPR寄存器来设置各个中断的优先级。中断优先级的具体代码如下:

NVIC_InitStructure.NVIC_IRQChannel = EXTIx_IRQn; //x表示具体的中断线号
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = X; //X表示具体的中断响应优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = Y; //Y表示具体的中断抢占优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

4.配置外部中断的中断使能

在完成外部中断的配置以后,还需要使能各个中断。通过NVIC_EnableIRQ函数可以使能指定的外部中断。在外部中断的处理函数中,需要使用NVIC_ClearPendingIRQ函数来清除中断标志位。中断使能的具体代码如下:

NVIC_Init(&NVIC_InitStructure);
EXTI_Init(&EXTI_InitStructure); //启动外部中断
NVIC_EnableIRQ(EXTIx_IRQn); //使能中断
NVIC_ClearPendingIRQ(EXTIx_IRQn); //清除中断标志位

按照以上步骤配置好外部中断以后,就可以在中断触发时进行相应的操作了。总之,在使用STM32进行外部中断的配置时,需要注意以上步骤的细节,特别是中断优先级和中断使能需要长时间测试验证。

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

    关注

    48

    文章

    7482

    浏览量

    151011
  • STM32
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354692
  • 外部中断
    +关注

    关注

    1

    文章

    131

    浏览量

    15801
收藏 人收藏

    评论

    相关推荐

    stm32 GPIO中断配置教程

    在嵌入式开发中,STM32微控制器因其高性能和丰富的外设而广受欢迎。GPIO(通用输入/输出)中断STM32微控制器中常用的功能之一,它允许开发者在特定引脚上检测到外部信号变化时快速
    的头像 发表于 11-19 15:53 132次阅读

    在TMS320C672x器件上配置外部中断

    电子发烧友网站提供《在TMS320C672x器件上配置外部中断.pdf》资料免费下载
    发表于 10-15 09:58 0次下载
    在TMS320C672x器件上<b class='flag-5'>配置</b><b class='flag-5'>外部</b><b class='flag-5'>中断</b>

    STM32CUBEMX(11)--外部中断(EXTI)

    首先需要准备一个开发板,这里我准备的是NUCLEO-F030R8的开发板: 选择芯片型号 使用STM32CUBEMX选择芯片stm32f030r8,如下所示: 配置时钟源 HSE与LSE分别为
    发表于 09-10 15:44

    stm32怎样触发软件中断

    了解STM32中断系统 STM32微控制器具有丰富的中断系统,包括NVIC(嵌套向量中断控制器)和SYSTICK定时器。NVIC可以处理多达
    的头像 发表于 09-02 09:32 618次阅读

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

    STM32中断分组   STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是
    发表于 04-08 08:05

    stm32外部中断存在自身内部的消抖吗?

    请问stm32外部中断存在自身内部的消抖吗? 若存在请问如何配置
    发表于 03-11 06:15

    RT-Thread Studio为什么没有找到外部中断配置

    使用版本 RT-Thread Studio 版本: 2.2.7 构建ID: 202308112000 使用接口 使用RT-Thread,STM32因为默认是屏蔽掉外部中断的接口代码的 这样用起来
    发表于 02-22 07:01

    外部中断的工作原理 外部中断方式有哪些 为什么要使用外部中断

    外部中断的工作原理是单片机响应外部事件的一种机制** **。
    的头像 发表于 01-28 17:37 3379次阅读

    基于STM32CubeIDE软件实现的STM32外部中断实例

    因为PE2配置为GPIO_EXTI2中断,它出现在了列表中。同时出现的还有SysTick,它是HAL_Delay的时基来源,如下图note处所说的,每隔一个固定时间产生一次中断
    发表于 01-12 16:15 1369次阅读
    基于<b class='flag-5'>STM32</b>CubeIDE软件实现的<b class='flag-5'>STM32</b><b class='flag-5'>外部</b><b class='flag-5'>中断</b>实例

    STM32ADC中断的使用注意事项和优化建议

    STM32ADC中断的使用注意事项和优化建议 STM32ADC(模拟数字转换器)是STMicroelectronics开发的一款用于外部模拟信号转换为数字信号的器件。在使用
    的头像 发表于 01-12 15:17 3123次阅读

    stm32中断怎么处理的

    STM32是一款非常强大的微控制器系列,具有丰富的外设和功能。中断STM32中非常重要的部分,能够帮助我们提高系统的响应速度和效率。本文将详细介绍STM32
    的头像 发表于 01-02 17:35 2451次阅读

    stm32f1如何将外部中断关掉hal库

    Layer)来简化芯片和外设的驱动开发。在STM32F1中,外部中断的关闭是通过HAL库中的相应函数来实现的。下面我将详细介绍如何使用HAL库关闭外部
    的头像 发表于 12-22 13:52 3188次阅读

    STM32和ADAS1000通过SPI通信,配置DRDY引脚为外部下降沿中断,为什么读不出来数据?

    我用STM32和ADAS1000通过SPI通信,配置DRDY引脚为外部下降沿中断,为什么读不出来数据,用示波器监测DRDY引脚一直为低电平。但是我不用
    发表于 12-19 08:04

    STM32CubeMX的外部中断的使用

    库的中断处理较为复杂:startup_stm32f103xb.s通过汇编注册了中断处理函数EXTI1_IRQHandler(),在stm32f1xx_it.c中,
    的头像 发表于 11-26 08:00 848次阅读
    <b class='flag-5'>STM32</b>CubeMX的<b class='flag-5'>外部</b><b class='flag-5'>中断</b>的使用

    外部中断为什么会误触发?

    今天在写外部中断的程序的时候,发现中断特别容易受到干扰,我把手放在对应的中断引脚上,中断就一直触发,没有停过。经过一天的学习,找到了几个解决
    的头像 发表于 11-23 08:00 1133次阅读
    <b class='flag-5'>外部</b><b class='flag-5'>中断</b>为什么会误触发?