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

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

3天内不再提示

华芯微特MCU的嵌套向量中断控制器与外部中断/事件控制器的使用方法

电子工程师 来源:华芯微特32位MCU 作者:华芯微特32位MCU 2021-06-04 12:08 次阅读

01.

嵌套向量中断控制器(NVIC)

NVIC的全称是Nested vectoredinterrupt controller,即嵌套向量中断控制器。

Cortex-M0和Cortex-M4提供了“嵌套向量中断控制器(NVIC)”用以管理中断事件。其中M0和M4提供的中断优先级及个数不一致,为了让您更加简单的使用这一功能,下面小编将以SWM190为例,给大家展示如何使用SWM系列产品的NVIC。

SWM190系列32位MCU(以下简称SWM190)内嵌ARM CortexTM-M0内核,其中断优先级分为4级,可通过中断优先级配置寄存器(IRQn)进行配置。

特性

l 4位中断优先级

l 支持嵌套和向量中断

l 硬件完成现场的保存和恢复

l 动态改变优先级

l 确定的中断时间

l 可屏蔽中断

在中断发生时,内核比较中断优先级,并自动获取入口地址,并保护现场,将指定寄存器中数据入栈,此过程无需软件参与。中断服务程序结束后,由硬件完成出栈工作。同时支持“尾链”模式及“迟滞”模式,有效的优化了中断发生及背对背中断的执行效率,提高了中断的实时性。嵌套向量中断控制器管理着包括核异常等中断。关于更多的异常和NVIC编程的说明请参考SWM190数据手册及M0权威指南。

02.

外部中断/事件控制器(EXTI

EXTI的全程是External interrupt/event controller,即外部中断/事件控制器,管理了控制器的32个中断/事件线。每个中断/事件线都对应一个电平或者边沿检测,电平检测支持高电平/低电平检测;边沿检测包括上升沿/下降沿/双边沿触发。

EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。

SWM190提供了32个中断供外设与核交互,其排列如表格 1所示。可以通过中断配置模块,将任意模块或具体IO的中断连接至指定中断编号。具体使用参考中断配置模块。

03.

SWM190 EXTI功能配置库函数

下面我们以最简单的按键输入为例,用外部中断的方法实现按键控制。在此例程中,我们将A4设为按键输入引脚,A5设为输出引脚,外接LED灯,通过按键翻转LED的状态来观察现象。

我们之前有讲到GPIO的配置方法,在这里就不在做赘述,将按键引脚通过GPIO_Init函数设为上拉输入,并与外部按键电路连接,将LED输出引脚通过GPIO_Init设置为输出,与外部LED引脚相连。然后进行外部中断配置:

在SWM190固件库中对外部中断的配置进行了说明,下面将根据库函数对SWM190的EXTI配置,首先来看一下EXTI_Init函数的原型void EXTI_Init(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t mode)。这个函数的实现是在SWM190_exti.c文件中,若要使用该函数在相应的应用程序的前面包含SWM190_exti.h头文件。

函数的第一个参数为GPIO_ TypeDef,它是一个结构体类型,该类型在SWM190_gpio.h中被定义。具体参数为指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD、GPIOE;

第二个参数为uint32_t n指定GPIO引脚,有效值包括PIN0、PIN1、PIN2、。。. 。。. PIN14、PIN15;

第三个参数为uint32_t mode,为EXTI触发方式配置,有效值包括EXTI_FALL_EDGE(下降沿触发中断)、EXTI_RISE_EDGE(上升沿触发中断)、EXTI_BOTH_EDGE(双边沿触发中断)、EXTI_LOW_LEVEL(低电平触发中断)、EXTI_HIGH_LEVEL(高电平触发中断);

配置GPIO中断引脚后,需要使能NVIC,将对应中断线连接至NVIC。并将引脚外部中断打开。具体配置函数如下所示:

b59feb96-c4c6-11eb-9e57-12bb97331649.jpg

接下来我们看下中断服务子函数,中断服务子函数与上面配置的外部中断线相对应,在中断服务函数中我们清中断并进行LED的翻转。

b5c45cd8-c4c6-11eb-9e57-12bb97331649.jpg

04.

实验现象

下载好程序后,按下按键时LED点亮,再按下按键时LED熄灭,如此循环。

编辑:jq

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

    关注

    241

    文章

    23135

    浏览量

    658445
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9046

    浏览量

    366816
  • 控制器
    +关注

    关注

    112

    文章

    16203

    浏览量

    177401
  • 函数
    +关注

    关注

    3

    文章

    4306

    浏览量

    62430
  • NVIC
    +关注

    关注

    0

    文章

    35

    浏览量

    11679

原文标题:华芯微特小课堂--MCU之EXTI

文章出处:【微信号:gh_ed4f95bde4df,微信公众号:华芯微特32位MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    控制器解码使用方法

    控制器解码是一种用于解析和执行控制信号的设备,广泛应用于工业自动化、机器人技术、航空航天等领域。它通常与传感、执行等设备配合使用,以实
    的头像 发表于 09-30 14:24 360次阅读

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

    概述 外部中断和事件控制器 (EXTI) 管理外部和内部异步事件 / 中断,并生成相应的事件请求到CPU/
    发表于 09-10 15:44

    stm32怎样触发软件中断

    了解STM32中断系统 STM32微控制器具有丰富的中断系统,包括NVIC(嵌套向量中断控制器
    的头像 发表于 09-02 09:32 655次阅读

    【「ARM MCU嵌入式开发 | 基于国产GD32F10x芯片」阅读体验】+阅读中断

    ⑤、设置中断向量表 EXTI外部中断及事件控制器 作者采用示意图,结构框图,图文并茂的方式讲解,有助于阅读者更高效的理解EXTI中断特性。
    发表于 09-01 23:59

    【GD32 MCU 入门教程】GD32 MCU 常见外设介绍(3)NVIC 介绍

    NVIC(Nested vectored interrupt controller,嵌套向量中断控制器)是Cortex-M处理的一部分,它是可编程的,且寄存
    的头像 发表于 08-12 10:02 417次阅读
    【GD32 <b class='flag-5'>MCU</b> 入门教程】GD32 <b class='flag-5'>MCU</b> 常见外设介绍(3)NVIC 介绍

    ARM CORE支持中断嵌套吗?GIC中断控制器支持中断嵌套吗?

    在默认情况下,本文讲述的都是ARMV8-aarch64架构,gicv3, linux kernel 5.14
    的头像 发表于 08-07 09:29 651次阅读
    ARM CORE支持<b class='flag-5'>中断</b><b class='flag-5'>嵌套</b>吗?GIC<b class='flag-5'>中断控制器</b>支持<b class='flag-5'>中断</b><b class='flag-5'>嵌套</b>吗?

    屏驱MCU-SWM320系列

    特性⚫ 内核 ◼ 32 位 ARM® Cortex™-M4 内核 ◼ 24 位系统定时 ◼ 工作频率最高 120MHz ◼ 硬件单周期乘法 ◼ 集成嵌套向量中断控制器(NVIC),提
    发表于 08-05 09:31

    CKS32F107xx系列MCU中断和事件

    本章节首先将以MCU开发人员常接触到的“中断”、“事件”和“中断事件”三个名词的概念展开,然后去阐述彼此的主要区别,最后借助MCU的GPIO外部
    的头像 发表于 07-22 09:29 506次阅读
    CKS32F107xx系列<b class='flag-5'>MCU</b>的<b class='flag-5'>中断</b>和事件

    PLC中断功能的作用及使用方法

    在工业自动化控制系统中,PLC(Programmable Logic Controller,可编程逻辑控制器)作为核心的控制单元,承担着处理各种控制逻辑、实现自动化操作的重要任务。而
    的头像 发表于 06-15 17:54 1811次阅读

    PLC控制器使用方法和注意事项

    随着工业自动化技术的飞速发展,可编程逻辑控制器(PLC)作为工业自动化领域的核心控制设备,已经广泛应用于各个生产领域。PLC以其高可靠性、高灵活性、易编程等优点,成为了工业自动化中不可或缺的一部分。本文将详细介绍PLC控制器
    的头像 发表于 06-14 16:01 1071次阅读

    移动机械控制器 车载智能控制器 CAN总线控制器

    控制器机械
    长沙硕博电子科技股份有限公司
    发布于 :2024年06月13日 17:02:51

    电机控制器mcu的作用 电机控制器mcu的功用是什么

    (Microcontroller Unit,简称MCU),它负责处理输入信号、执行控制算法以及输出控制指令。本文将详细介绍电机控制器MCU
    的头像 发表于 06-04 17:20 1994次阅读

    什么是中断向量偏移,为什么要做中断向量偏移?

    MCU中有两段或以上程序的时候(第一个程序为用户BootLoader程序,其他的为APP程序,这个在前期视频《什么是ISP?什么是IAP》中有讲过),APP程序中都需要做中断向量偏移,那么什么是中断向量偏移,为什么要做
    的头像 发表于 01-30 09:47 1622次阅读
    什么是<b class='flag-5'>中断向量</b>偏移,为什么要做<b class='flag-5'>中断向量</b>偏移?

    cc2530总中断控制位是什么?

    cc2530是一款著名的无线通信芯片,它内置了丰富的功能和资源,其中包括总中断控制位。在本文中,将介绍cc2530总中断控制位的概念、作用、使用方法
    的头像 发表于 01-08 09:37 980次阅读

    arm中断是怎么实现的

    ARM中断的实现是通过中断控制器和异常模式实现的。ARM处理通过中断控制器来接收和处理外部中断
    的头像 发表于 01-05 15:18 839次阅读