回答

收藏

STM32 中断问题。求助。

STMCU STMCU 2793 人阅读 | 0 人回复 | 2013-08-17

这样设置的
#include "ir.h"


void IR_Init()
{
GPIO_InitTypeDef GPIO_InitStructure;        
EXTI_InitTypeDef   EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);         //使能PB端口时钟               

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOB, &GPIO_InitStructure);
       
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource15);       

       
    EXTI_InitStructure.EXTI_Line=EXTI_Line15;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;  
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling ;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);     //根据EXTI_InitStruct中指定的       
       
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel =EXTI15_10_IRQn;                  //使能按键外部中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;  //抢占优先级2,   
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;    //子优先级2
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;      //使能外部中断通道
NVIC_Init(&NVIC_InitStructure);                                                    //中断优先级分组初始化
       
}


void EXTI15_10_IRQHandler(void)
{
        LED=0;
        if(EXTI_GetITStatus(EXTI_Line15)!=RESET)//判断中间的 黑线  
  {   
                over--;
                LED=0;
    EXTI_ClearITPendingBit(EXTI_Line15);    //清除LINE上的中断标志位   
  }
               
}

哪有问题啊?求助攻啊{:soso_e115:}
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条