一、中断系统
中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。
中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源。
中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回。
中断流程图:
二、STM32中断
在STM32中,NVIC(Nested Vectored Interrupt Controller)是一个用于管理中断的嵌套向量中断控制器。它统一管理了68个可屏蔽中断通道,涵盖了多个外设模块,如EXTI、TIM、ADC、USART、SPI、I2C、RTC等。
每个中断通道都有16个可编程的优先级。为了更好地管理这些中断,可以对优先级进行分组,并设置抢占优先级和响应优先级。通过设置不同的优先级,可以确定中断的触发顺序和处理方式。
NVIC类似于一个中断调度器,负责管理所有中断请求,并根据优先级和分组配置决定中断的触发和处理顺序。每个中断通道可以装载最多16个中断,当中断事件发生时,NVIC会根据优先级和分组设置决定哪个中断将被优先处理。
通过使用NVIC,可以实现灵活的中断管理机制,确保高优先级中断能够及时响应。
NVIC基本结构
统中断系统