STM32 学习笔记(2):外部中断的使用 2011年3月20日 外部中断 中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51 单片机时代,一共只有5 个中断,其中2 个外部中断,2 个定时/计数器中断和一个串口中断,但是在STM32 中,中断数量大大增加,而且中断的设置也更加复杂
今天就将来探讨一下关于STM32 中的中断系统
1 基本概念 ARM Coetex -M3 内核共支持 256 个中断,其中16 个内部中断,240 个外部中断和可编程的256 级中断优先级的设置
STM32 目前支持的中断共84 个(16个内部+68 个外部),还有16 级可编程的中断优先级的设置,仅使用中断优先级设置8bit 中的高 4 位
STM32 可支持 68 个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节 PRI_n(8 位,但是STM32 中只使用4 位,高 4 位有效),每 4 个通道的8 位中断优先级控制字构成一个32 位的优先级寄存器
68 个通道的优先级控制字至少构成 17 个32 位的优先级寄存器
4bit 的中断优先级可以分成 2 组,从高位看,前面定义的是抢占式优先级,后面是响应优先级
按照这种分组,4bit 一共可以分成 5 组 第 0 组:所有4bit 用于指定响应优先级; 第 1 组:最高 1 位用于指定抢占式优先级,后面 3 位用于指定响应优先级; 第 2 组:最高 2 位用于指定抢占式优先级,后面 2 位用于指定响应优先级; 第 3 组:最高 3 位用于指定抢占式优先级,后面 1 位用于指定响应优先级; 第 4 组:所有4 位用于指定抢占式优先级
所谓抢占式优先级和响应优先级,他们之间的关系是:具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套
当两个中断源的抢占式优先级