STM32外部中断以及中断优先级
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
外部中断的初始化过程:
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优先响应