NVIC介绍与EXTI的关系

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

NVIC
Nested vectored interrupt controller。

嵌套向量中断控制器。

它是STM32 core peripherals 的其中之一,其余为system timer, system control block和memory protect unit。

从NVIC的vector table中看出,NVIC type按照优先级从高到低的顺序,可以分为Reset, NonMaskable Interrupt(NMI), Hard Fault, Memory management fault, Usage Fault, ..., SysTick, Interrupt(IRQ)。

整理表格如下。

由此可见,EXTI是NVIC中的一个成员。

NVIC中,IRQ分为level-sensitive和pulse两种。

前者的中断需要相应外设来取消,因此外设可以控制处理器重复执行相应的ISR;后者由处理器时钟的上升沿同步采集,因此需要外设将中断保持至少一个时钟周期。

对于软硬件控制中断挂起和取消中断信号的条件等,参见<PM0056 Programming manual: STM32F10xxx Cortex-M3 programming manual> 4.3.9 Level-sensitive and pulse interrupts。

寄存器
NVIC IRQ的主要寄存器为set enable, clear enable, set pending, clear pending, active bit,每种均有三个元素,分别控制第0~31,32~63,64~67号IRQ;以及设置优先级和软件中断的寄存器。

EXTI
EXTI可以检测20个事件或中断,对应关系如下所示。

寄存器
EXTI的寄存器主要有:interrupt mask, event mask, rising trigger selection, falling trigger selection, software interrupt event, pending。

通过对EXTI寄存器的操作,可实现硬件/软件中断/事件的设置,分别需要改写的寄存器参见<RM0008 Reference
manual: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and
STM32F107xx advanced ARM-based 32-bit MCUs> 9.2.4 Function description。

将GPIO作为中断的处理流程
1. GPIO初始化。

包括外设时钟,管脚,速度,模式等。

2. 将GPIO脚连接到EXTI line。

这是通过写AFIO下的EXTICR寄存器实现的。

3. EXTI初始化,使能该条EXTI line,并做上升下降沿设置。

通过写EXTI下IMR, EMR, PTSR, FTSR实现。

4. NVIC初始化。

包括优先级的计算和使能。

当中断到来,ISR做相应处理后:
1. 清除GPIO寄存器中的信号量。

2. 清除EXTI上的信号量。

相关文档
最新文档