NVIC是Nested Vectored Interrupt Controller的缩写,意思是嵌套向量中断控制器。它是STM32芯片的一个重要组成部分,负责管理和处理各种内部和外部的中断请求。
中断是一种特殊的事件,可以打断程序的正常执行流程,让处理器去执行一段特定的代码,称为中断服务程序。中断可以由硬件或软件产生,例如按键,定时器,串口,外部信号等。中断可以提高系统的实时性和效率,实现多任务的切换和协调。
NVIC的主要功能有以下几点:- 支持多达240个可屏蔽的中断源,每个中断源都有一个唯一的编号和向量地址。
- 支持16个内核异常,包括复位,NMI,硬件错误等。
- 支持嵌套中断,即高优先级的中断可以打断低优先级的中断。
- 支持动态设置中断优先级,包括抢占优先级和响应优先级。
- 支持软件触发中断,即通过写寄存器来模拟一个中断请求。
- 支持尾链技术,即在一个中断服务程序结束时,快速跳转到下一个等待的中断服务程序,减少响应时间。