您的位置:首页 > 其它

EXTI中断理解

qq_33214029 2020-07-21 04:14 204 查看 https://blog.csdn.net/qq_33214

1.STM32的每个I/O口都可以用作EXTI中断事件
2.支持多达19个中断/事件请求
3.EXTI有两大功能:产生中断(软件),产生事件(硬件)

产生事件:外部有输入信号(高电平或低电平),边沿检测电路检测上升沿中断或下降沿中断,或们电路输出边沿检测电路的输入信号,之后通过与们电路输入到NVIC内,实现系统中断控制。

GPIOX.0映射到EXTI0,.

GPIOX.15映射到EXTI15
EXTI只能使用7个中断服务函数



其中EXTI0-4对应EXTI0-4,
EXTI5-9对应EXTI9_5
EXTI10-15对应EXTI15_10
程序:
1.中断线配置,对应哪一个GPPIO口使用哪一个中断
2.模式配置,中断或事件
3. 触发模式配置:上升沿中断或者下降沿中断或者上升下降沿中断
4. 使能中断线

EXTI_InitStructure.EXTI_Line = EXTI_Line10;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);

中断调用:调用中断调用函数,判断中端口信息,输出内容,之后清除中断口

void  EXTI0_IRQHandler(void)
{
//È·±£ÊÇ·ñ²úÉúÁËEXTI LineÖжÏ
if(EXTI_GetITStatus( EXTI_Line0) != RESET)
{
// LED1 È¡·´
GPIO_ResetBits(LED1_GPIO_PORT,LED1_GPIO_PIN);

//Çå³ýÖжϱê־λ
EXTI_ClearITPendingBit(EXTI_Line0);
}
}

以上纯属个人观点,若有不正之处,请不吝赐教!

标签: