学习笔记,仅供参考。
1.中断
什么是中断?
中断一般来自硬件(如片上外设、外部I/O输入等)发生的事件,当这些硬件产生中断信号时,CPU会暂停当前运行的程序,转而去处理相关硬件的中断服务程序。
对于单片机来说,当发生中断事件时,CPU会处理中断并保留现场,当中断事件结束后,程序会回到保留的现场并向下执行。
2.STM32外部中断--EXTI
本次使用的STM32F407 具有 82 个可屏蔽中断通道,系统 异常10 个,并且优先级可编写进行设置。STM32F4 的每个 IO 都可以作为 外部中断的中断输入口,中断控制器支持 22 个外部中断/事件请求,每个中断/事件都有独立的触发和屏蔽设置。
库函数配置一般步骤
1.使能IO口时钟,并且设置为输入模式
类似初始化按键
2.开启 SYSCFG 时钟,设置 IO 口与中断线的映射关系。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能 SYSCFG 时钟
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);//中断线0与A口映射(就是GPIOA的0号管脚)
3.初始化中断,并设置触发条件
3.1线0 3.2中断触发模式 3.3上升沿触发 3.4使能 3.5初始化寄存器(EXTI_Init)
4. 配置中断分组(NVIC),并使能中断。
4.1外部中断通道 4.2抢占优先级 4.3响应优先级 4.4使能 4.5初始化中断优先级(NVIC_Init)
5.编写中断服务函数
5.1找到对应中断服务函数 5.2判断此线上的中断是否发生 5.3若发生干什么事情 5.4清除中断标志位
3.总体来说一般步骤为:
1)使能 IO 口时钟,初始化 IO 口为输入。
2)使能 SYSCFG 时钟,设置 IO 口与中断线的映射关系。
3)初始化线上中断,设置触发条件等。
4)配置中断分组(NVIC),并使能中断。
5)编写中断服务函数。
标签:初始化,使能,中断,IO,SYSCFG,EXTI From: https://blog.csdn.net/m0_74355107/article/details/137017859