STM32学习——中断系统

  • ==STM32的中断系统==
  • ==STM32的外部中断==
  • ==STM32的外部中断程序设计思路==
  • ==STM32中断系统实训==


STM32的中断系统

  ARM Contex M3内核支持256个中断,包括16个内核中断240个外设中断拥有256个中断优先级别。(但是不是所有都有这么多)

  **中断通道可能由多个中断源共用。**某个中断服务函数可能被多个中断源所共用,因此在中断服务函数入口处需要进行判断是哪个中断触发了中断请求。

  STM32存在两个优先级概念:抢占优先级响应优先级。先处理抢占优先级高的,如果抢占优先级相同,先处理响应优先级高的。

STM32的外部中断

  外部中断EXTI是STM32实时处理外部事件的一种机制,中断请求是由GPIO端口的引脚发出的,因此称为外部中断。

  STM32有16个外部中断源EXTI0 — EXTI15,分别对应着7个中断向量(中断服务函数)。其中:EXTI0、EXTI1、EXTI2、EXTI3、EXTI4专用EXTI5 — EXTI9共用EXTI10 — EXTI15共用;EXTI0的连接引脚是PA0 — PG0,即每个端口组的0号引脚,同理其它类似。

stm32读取emmc_外部中断


  STM32外部中断触发条件:上升沿、下降沿、双边沿。(不能配置为高、低电平触发

STM32的外部中断程序设计思路

stm32读取emmc_学习_02


stm32读取emmc_外部中断_03

STM32中断系统实训

stm32读取emmc_单片机_04


stm32读取emmc_学习_05

---------------------------------------------------------操作---------------------------------------------------------

stm32读取emmc_stm32读取emmc_06


stm32读取emmc_外部中断_07


stm32读取emmc_学习_08


stm32读取emmc_外部中断_09


stm32读取emmc_stm32_10


stm32读取emmc_stm32_11


stm32读取emmc_学习_12


stm32读取emmc_stm32读取emmc_13


stm32读取emmc_stm32读取emmc_14


stm32读取emmc_学习_15


stm32读取emmc_外部中断_16


stm32读取emmc_stm32读取emmc_17


stm32读取emmc_学习_18


先编译一边,确保工程没问题。


中断函数位置:

stm32读取emmc_stm32读取emmc_19


stm32读取emmc_学习_20


这里的callback为中断函数,主要编辑这个,中断后做什么都是写在callback里(复制到用户自定义里写)

stm32读取emmc_单片机_21


功能1、2的回调函数(功能1、2的回调函数是同一个,因此需要判断一下):

stm32读取emmc_单片机_22