跳转至

中断系统概述

1. 简介

单片机的中断系统是一种机制,允许外部事件(如输入信号的变化、定时器溢出等)打断正在执行的程序,以便立即处理这些事件。

中断系统通常包括中断请求源、中断控制器和中断服务程序等组成部分。当发生中断请求时,中断控制器会暂停当前程序的执行,保存相关的状态信息,然后跳转到预先定义的中断服务程序中执行相应的处理操作。处理完成后,再返回到原来的程序继续执行。中断系统可以提高单片机的响应速度和处理效率,使其能够及时处理各种外部事件。

在主程序运行的过程中,出现了特定的中断触发条件称为:中断源,使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后 又返回原来被暂停的位置继续运行,称之为中断

2. 中断相关概念

2.1 中断优先级

当有多个中断源同时申请中断的时候,CPU会根据中断源的轻重缓急进行裁决,优先处理更加紧急的中断

2.2 中断嵌套

当一个中断程序正在运行的时候,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而处理新的中断程序,处理完成后再返回上一个断点处继续执行。

2.3 嵌套中断向量控制器 NVIC

在STM32中,NVIC是用来统一分配中断优先级和管理中断的,NVIC 是一个内核外设

2.4 中断的分组

在 NVIC 中优先级分为抢占优先级响应优先级

在当前执行的中断程序中,如果有更高优先级的中断申请,那么 CPU 会立即停止当前的中断运行,转而去运行更高优先级的中断程序,则该中断优先级为抢占优先级

在上一个中断任务执行完毕之后,再去执行下一个高优先级的中断,也就是说,高优先级的中断并没有打断当前正在执行的任务,则该中断优先级为响应优先级

总的来说,响应优先级的任务不会打断当前正在执行的任务,而抢占优先级则会打断当前正在执行的任务

在 NVIC 中每一个中断通道都有16个优先级。

NVIC 的中断优先级由优先级寄存器的 4 位决定,数值越小优先级越高。

其中这 4 位优先级可以进行切分

分为高n位的抢占优先级和低4-n位的响应优先级,抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队

2.5 AFIO 复用IO口

AFIO 主要用于引脚复用功能的选择重定义