STM32F4外部中断

一、外部中断概述

STM32F4的每个IO都可以作为外部中断输入。STM32F4的中断控制器支持22个外部中断/事件请求。
EXTI线0~15:对应外部IO口的输入中断
EXTI线16:连接到PVD输出
EXTI线17:连接到RTC闹钟事件
EXTI线18:连接到USB OTG FS唤醒事件
EXTI线19:连接到以太网唤醒事件
EXTI线20:连接到USB OTG (HS中配置)唤醒事件
EXTI线21:连接到RTC入侵和时间戳事件
EXTI线22:连接到RTC唤醒事件
每个外部中断线可以独立的配置触发方式(上升沿、下降沿、双边沿触发)等等。
中断映射关系:
STM32F4外部中断_第1张图片
中断服务函数:STM32F4外部中断_第2张图片
STM32F4外部中断_第3张图片
外部中断线5~9分配一个中断向量,共用一个服务函数。
外部中断线10~15分配一个中断向量,共用一个中断服务函数。

二、常用库函数

void SYSCFG_EXTILineConfig(uint8_t EXTI_PortSourceGPIOx, uint8_t EXTI_PinSourcex);
//设置IO口与中断线的映射关系

void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);`
//初始化中断线:触发方式等

ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);
//判断中断线中断状态,是否发生

void EXTI_ClearITPendingBit(uint32_t EXTI_Line);
//清除中断线上的中断标志位

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能SYSCFG时钟
//这个函数非常重要,在使用外部中断的时候一定要先使能SYSCFG时钟
使用外部中断的一般配置步骤:
1、使能SYSCFG时钟:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);

2、初始化IO口为输入。

GPIO_Init();

3、设置IO口与中断线的映射关系。

void SYSCFG_EXTILineConfig();

4、初始化线上中断,设置触发条件等。

EXTI_Init();

5、配置中断分组(NVIC),并使能中断。

   NVIC_Init();

6、 编写中断服务函数。

  EXTIx_IRQHandler();

7、清除中断标志位

  EXTI_ClearITPendingBit();

外部中断的讲解就到这里!!!

你可能感兴趣的:(STM32F4,stm32,嵌入式)