断断续续学习STM32一学期了,时间过的好快,现在对STM32F103系列单片机的中断嵌套及外部中断做一个总结,全当学习笔记。废话不多说,ARM公司的Cortex-m3 内核,支持256个中断,其中包含16个内核中断和240个外部中断,并且具有256级的可编程中断设置。在ST公司的STM32单片机中最多有84个中断,包括16个内核中断(这16个内部中断是任何半导体商也改不了的),和68个可屏蔽中断,具有16级可编程的中断优先级。但是在STM32F103系列中只有60个可屏蔽中断,(107系列有68个)。
针对这60个可屏蔽中断,重点掌握它的一个中断优先级寄存器组IPR,全称Interrupt Priority Registers。这个寄存器组包含15个32位的寄存器,一个可屏蔽中断占用8bit,那么一个寄存器可以控制4个可屏蔽中断,一共15*4=60。然而在这占用的8bit中又只使用了高4bit,这高4bit的分配才是STM32F103系列单片机中断嵌套的设置所在。STM32F103系列的中断嵌套分为5个组,分别是0、1、2、3、4 这5个组,下面是5个组与中断嵌套的对应关系。
组 | 分配结果 |
0 | 0位抢占优先级,4位响应优先级 |
1 | 1位抢占优先级,3位响应优先级 |
2 | 2位抢占优先级,2位响应优先级 |
3 | 3位抢占优先级,1位响应优先级 |
4 | 4位抢占优先级,0位响应优先级 |
I/O口3 | I/O口2 | I/O口1 | I/O口0 |
0000 GPIOA | 0000 GPIOA | 0000 GPIOA | 0000 GPIOA |
0001 GPIOB | 0001 GPIOB | 0001 GPIOB | 0001 GPIOB |
0010 GPIOC | 0010 GPIOC | 0010 GPIOC | 0010 GPIOC |
0011 GPIOD | 0011 GPIOD | 0011 GPIOD | 0011 GPIOD |
0100 GPIOE | 0100 GPIOE | 0100 GPIOE | 0100 GPIOE |
0101 GPIOF | 0101 GPIOF | 0101 GPIOF | 0101 GPIOF |
0110 GPIOG | 0110 GPIOG | 0110 GPIOG | 0110 GPIOG |
联系客服