打印

stm32配置中断死机????

[复制链接]
1594|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
void Touch_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        EXTI_InitTypeDef EXTI_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
#if 1

               

       
                //下面是SPI相关GPIO初始化
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //通用推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
       
        //按键user
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 ;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;  //通用推挽输出

        GPIO_Init(GPIOA,&GPIO_InitStructure);


        //下面是SPI相关GPIO初始化
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;  //上拉输入
        GPIO_Init(GPIOA,&GPIO_InitStructure);

        //Configure PC6 pin: TP_CS pin
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOC,&GPIO_InitStructure);

        //Configure PC4 pin: TP_INT pin
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;         //上拉输入
        GPIO_Init(GPIOC,&GPIO_InitStructure);
#endif       
        LED_ON(LED1);
#if 1

       



/*---------------------中断优先级配置--------------------------------------------------------------*/
                /* Configure one bit for preemption priority */
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);           // 设置中断组 为2        


        NVIC_InitStructure.NVIC_IRQChannel=EXTI4_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=2;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStructure);
        NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStructure);

/*---------------------外部中断优先级配置--------------------------------------------------------------*/
        LED_ON(LED2);
          /* Generate software interrupt: simulate a falling edge applied on PEN EXTI line */
        /*-------------触摸屏中断---------------------*/       
          GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource4);
       

          /* Configure PEN EXTI Line to generate an interrupt on falling edge */  
          EXTI_InitStructure.EXTI_Line = EXTI_Line4;
          EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
          EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;  
          EXTI_InitStructure.EXTI_LineCmd = ENABLE;
          EXTI_Init(&EXTI_InitStructure);
       
        EXTI_GenerateSWInterrupt(EXTI_Line4);
        LED_ON(LED3);


        /*-------------------按键中断------------------------*/
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource8);
       
        EXTI_InitStructure.EXTI_Line = EXTI_Line3;
          EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
          EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;  
          EXTI_InitStructure.EXTI_LineCmd = ENABLE;
          EXTI_Init(&EXTI_InitStructure);
       
  //        EXTI_GenerateSWInterrupt(EXTI_Line4);
       
        EXTI_GenerateSWInterrupt(EXTI_Line3);

#endif

}
程序走到第一红色部分死机
LED1,LED2,亮
LED3灭的

不知道哪里出问题了?
/*---------------------------------------------时钟配置---------------------------------------------------------------------*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA  | RCC_APB2Periph_GPIOC
                                                           |RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE
                                                           ,ENABLE );

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //使能IO复用功能,使用中断功能重要!!!

        while(SysTick_Config(SystemCoreClock / 1000));          

QQ:1009243634,

11.png (10.84 KB )

11.png

相关帖子

沙发
airwill| | 2013-4-20 18:36 | 只看该作者
怎么个"死机"法.
我很久没有遇到 "死机" 问题了.
建议借助调试工具来看. 因为"死机" 实在太不好分析了

使用特权

评论回复
板凳
lxj19901115| | 2013-5-7 17:57 | 只看该作者
很简单的方法,没有找到中断函数入口

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝