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外部中断触发条件:上升沿、下降沿、双边沿。(不能配置为高、低电平触发)
STM32的外部中断程序设计思路
STM32中断系统实训
---------------------------------------------------------操作---------------------------------------------------------
先编译一边,确保工程没问题。
中断函数位置:
这里的callback为中断函数,主要编辑这个,中断后做什么都是写在callback里(复制到用户自定义里写)
功能1、2的回调函数(功能1、2的回调函数是同一个,因此需要判断一下):