下载此文档

STM32中断优先级理解.docx


文档分类:IT计算机 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
CM3 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断, 并且具有 256 级的可编程中断设置。但 STM32 并没有使用 CM3 内核的全部东西,而是只用了它的一部分。 STM32 有 84 个中断,包括 16 个内核中断和 68 个可屏蔽中断,具有 16 级可编程的中断优先级。而我们常用的就是这 68 个可屏蔽中断,但是 STM32 的 68 个可屏蔽中断,在 STM32F103 系列上面,又只有 60个(在 107 系列才有 68 个)。在 MDK 内,与 NVIC 相关的寄存器, MDK 为其定义了如下的结构体: 点击( 此处) 折叠或打开 1. typedef struct 2.{ 3. vu32 ISER [2 ]; 4. u32 RESERVED0 [ 30 ]; 5. vu32 ICER [2 ]; 6. u32 RSERVED1 [ 30 ]; 7. vu32 ISPR [2 ]; 8. u32 RESERVED2 [ 30 ]; 9. vu32 ICPR [2 ]; 10. u32 RESERVED3 [ 30 ]; 11. vu32 IABR [2 ]; 12. u32 RESERVED4 [ 62 ]; 13. vu32 IPR [ 15 ]; 14. } NVIC_TypeDef ; STM32 的中断在这些寄存器的控制下有序的执行的。只有了解这些中断寄存器,才能了解 STM32 的中断。下面简要介绍这几个寄存器: ISER[2] :I SER 全称是: Interrupt Set-Enable Registers ,这是一个中断使能寄存器组。上面说了 STM32F103 的可屏蔽中断只有 60个, 这里用了 2个 32 位的寄存器, 总共可以表示 64 个中断。而 STM32F103 只用了其中的前 60位。 ISER[0] 的 bit0~bit31 分别对应中断 0~31 。 ISER[1] 的 bit0~27 对应中断 32~59 ;这样总共 60 个中断就分别对应上了。你要使能某个中断, 必须设置相应的 ISER 位为 1, 使该中断被使能( 这里仅仅是使能,还要配合中断分组、屏蔽、 IO 口映射等设置才算是一个完整的中断设置) 。具体每一位对应哪个中断,请参考 stm32f10x_nvic..h 里面的第 36 行处。 ICER[2] :全称是: Interrupt Clear-Enable Registers ,是一个中断除能寄存器组。该寄存器组与 ISER 的作用恰好相反, 是用来清除某个中断的使能的。其对应位的功能,也和 ICER 一样。这里要专门设置一个 ICER 来清除中断位,而不是向 ISER 写0 来清除,是因为 NVIC 的这些寄存器都是写 1 有效的,写 0是无效的。 ISPR[2] : 全称是: Interrupt Set-Pending Registers , 是一个中断挂起控制寄存器组。每个位对应的中断和 ISER 是一样的。通过置 1 ,可以将正在进行的中断挂起,而执行同级或更高级别的中断。写 0 是无效的。 ICPR[2] : 全称是: Interrupt Clear-Pending Registers , 是一个中断解挂控制寄存器组。其作用与 ISPR 相

STM32中断优先级理解 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小76 KB
  • 时间2017-05-29