您的位置:首页 > 其它

stm32外部中断

2018-02-28 11:07 337 查看
GPIO外部中断总结
     stm32的每个GPIO都能配置成一个外部中断触发源,16组gpio可组成16个外部触发源,一组gpio只能触发一个中断,STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。STM32F103 的19 个外部中断为:
       


外部中断的配置过程:
   先配置GPIO口
   GPIO_InitTypeDef GPIO_InitStructure;//定义结构体
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//使能时钟
GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_2;//选择IO口   PE2
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//设置成上拉输入
GPIO_Init(GPIOE, &GPIO_InitStructure);//使用结构体信息进行初始化IO口
   使能AFIO复用时钟功能
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);将GPIO口与中断线映射起来:
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);
 
中断线上的中断初始化:
EXTI_InitTypeDef EXTI_InitStructure;//定义初始化结构体
EXTI_InitStructure.EXTI_Line=EXTI_Line2; //中断线的标号 取值范围为EXTI_Line0~EXTI_Line15
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中断模式,可选值为中断 EXTI_Mode_Interrupt 和事件 EXTI_Mode_Event。
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;//触发方式,可以是下降沿触发 EXTI_Trigger_Falling,上升沿触发 EXTI_Trigger_Rising,或者任意电平(上升沿和下降沿)触发EXTI_Trigger_Rising_Falling
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);//根据结构体信息进行初始化
5,中断优先级配置:
NVIC_InitTypeDef NVIC_InitStructure;//定义结构体
NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn; //使能外部中断所在的通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //抢占优先级 2,
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02; //子优先级 2
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道
NVIC_Init(&NVIC_InitStructure); //根据结构体信息进行优先级初始化 6、外部中断服务函数的编写:  外部中断函数分别为:EXPORT   EXTI0_IRQHandler          EXPORT   EXTI1_IRQHandler       EXPOR T   EXTI2_IRQHandler         EXPORT   EXTI3_IRQHandler        EXPORT   EXTI4_IRQHandler          EXPORT   EXTI9_5_IRQHandler        EXPORT   EXTI15_10_IRQHandler中断线 0-4 每个中断线对应一个中断函数,中断线 5-9 共用中断函数 EXTI9_5_IRQHandler,中断线 10-15 共用中断函数 EXTI15_10_IRQHandler。   
void EXTI2_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line2)!=RESET)//判断某个线上的中断是否发生
{
      中断逻辑…
EXTI_ClearITPendingBit(EXTI_Line2);   //清除 LINE 上的中断标志位
}     
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: