STM32学习笔记(二) 中断

  • 1、M3内核支持256个中断(16个内核中断和240个外部中断)和可编程256级中断优先级设置。然而,STM32并没有全部使用M3内核的东西,STM32目前支持的中断为84个,包括16和内核中断以及68个外部中断,共有16级可编程的优先级设置。
  • 2、与中断有关的两个概念为中断优先级和中断向量的优先级组。
  • 3、STM32的中断优先级分为两种,一种为抢占式优先级,一种为响应式优先级。由四位数字来控制,因此共分为16种,划分为5组。

具有高抢占式优先级的中断可以在具有地抢占式优先级的中断处理过程中响应,即可以中断嵌套。如果抢占式优先级相同时,则不会产生中断。

如果两个中断同时到达,则中断控制器根据它们的响应优先级高低来决定先处理哪一个;如果抢占式优先级和响应式优先级都相等,则根据它们在中断表中的排位顺序来决定先处理哪一个。

  • 4、STM32中,每一个IO口都可以产生一个外部中断,中断以组为单位,同组间的外部中断同一时间只能使用一个,组别为类似PA0,PB0,PC0之类的为一组。
  • 5、因此共有0~15个组,0~4享有自己的中断函数,5~9共有一个中断函数,10~15共用一个中断函数。
  • 6、使用外部中断的一般步骤。
  1. 初始化IO口作用输入
  2. 开启IO口的复用功能,设置IO口与中断线之间的映射关系
  3. 开启与该IO口相对应的线上中断事件,设置触发条件
  4. 配置中断分组(NVIC),并设置使能
  5. 中断服务函数的编写
  • 7、STM32不像51单片机,可以使用interrupt关键字来定义中断响应函数,STM32的中断响应函数结构存在中断向量表中,是由启动代码给出的。默认的中断响应函数在stm32f10x_it.c中,因此需要把这个文件加入到工程中。