重庆李家沱网站建设,电商类公司网站应该怎么搭建,网站建设张世勇,安装免费下载app概述
本文将介绍一下华芯微特MCU的嵌套向量中断控制器#xff08;NVIC#xff09;与外部中断/事件控制器#xff08;EXTI#xff09;的使用方法等。 01.嵌套向量中断控制器#xff08;NVIC#xff09;
NVIC的全称是Nested vectoredinterrupt controller#xff0c;即嵌…
概述
本文将介绍一下华芯微特MCU的嵌套向量中断控制器NVIC与外部中断/事件控制器EXTI的使用方法等。 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的中断连接至指定中断编号。具体使用参考中断配置模块。
表格 1 中断编号及对应外设 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。并将引脚外部中断打开。具体配置函数如下所示 接下来我们看下中断服务子函数中断服务子函数与上面配置的外部中断线相对应在中断服务函数中我们清中断并进行LED的翻转。 04.实验现象
下载好程序后按下按键时LED点亮再按下按键时LED熄灭如此循环。