当前位置:文档之家› STM32外部中断以及中断优先级

STM32外部中断以及中断优先级

STM32外部中断以及中断优先级
STM32外部中断以及中断优先级

外部中断的初始化过程:

1.初始化IO为输入(可以设置上拉,下拉,浮空)

2.开启IO复用时钟

3.开启与该IO相对的线上(详解下)

4.配置NVIC,使能中断

5.编写中断服务函数

外部中断:

Stm32中总共有19个外部中断

包括:

线0-15:IO输入中断(每条线上最多有7个IO,如GPIOA~GPIOG,但是每一条线每次只允许同时连接到一个IO)

线16:PVD

线17:RTC

线18:USB

关于优先级:

CM3中内核支持256个中断(16个内核+240外部)和可编程256级中断优先级的设置

Stm32目前支持84个中断(16个内核+68个外部,注:不是指68个外部中断),16级可编程优先级(优先级设置寄存器中使用了4位)

注意:其中外部中断5-9和中断10-15向量存放在一起

优先级:

数值低的优先级要高于数值高的!!!!!!

上电复位后,系统默认使用的是组0;

一个系统只能使用一组优先级组,不可使用多个,优先级的设置不能超过组的范围,否则会产生不可预计的错误

1.高抢先级的中断可以打断低优先级的中断响应,构成中断嵌套

2.相同抢先级的中断不可以构成嵌套,系统会优先响应子优先级高的

3.当2(n)个相同抢先优先级和相同子优先级的中断出现,STM32首先响应中断通道所对应的中断向量地址低的那个中断

4.0号抢先优先级的中断,可以打断任何中断抢先优先级为非0号的中断;1号抢先优先级的中断,可以打断任何中断抢先优先级为2、3、4号的中断;……;构成中断嵌套。

5.所有外部中断通道的优先级控制字PRI_n也都是0,68个外部中断通道的抢先优先级都是0号,没有子优先级的区分。不会发生任何的中断嵌套行为,谁也不能打断当前正在执行的中断服务。当多个中断出现后,则看它们的中断向量地址:地址越低,中断级别越高,STM32优先响应

相关主题
文本预览
相关文档 最新文档