stm32不能进入外部中断

2019-03-23 18:41发布

今天想用按键进入外部中断,却不能进入中断,求大神指导,中断函数:

#include "exti.h"

void EXTI_KEY_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStruct;
        EXTI_InitTypeDef EXTI_InitStruct;
        NVIC_InitTypeDef NVIC_InitStruct;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC,ENABLE);        
        
        NVIC_InitStruct.NVIC_IRQChannel=EXTI4_15_IRQn;
        NVIC_InitStruct.NVIC_IRQChannelPriority=0x00;
  NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStruct);
        
        GPIO_InitStruct.GPIO_Pin=13;
        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN;
        GPIO_InitStruct.GPIO_Speed=GPIO_Speed_Level_2;
        GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;
        GPIO_Init(GPIOC,&GPIO_InitStruct);
        
        SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC,EXTI_PinSource13);
  EXTI_InitStruct.EXTI_Line=EXTI_Line13;
        EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;
        EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Falling;
        EXTI_InitStruct.EXTI_LineCmd=ENABLE;
        EXTI_Init(&EXTI_InitStruct);
}
主函数

int main(void)
{
  SystemInit();
        Led_Init();
        GPIO_ResetBits(GPIOA ,GPIO_Pin_5);
        EXTI_KEY_Init();
  
  while (1)
  {

  }
}
stm32f0xx_it.c中配置函数:
void PendSV_Handler(void)
{
}

/**
  * @brief  This function handles SysTick Handler.
  * @param  None
  * @retval None
  */
void SysTick_Handler(void)
{
}
void EXTI4_15_IQRHandler(void)
{
        if(EXTI_GetITStatus(EXTI_Line13)!=RESET)
        {
                GPIO_WriteBit(GPIOA, GPIO_Pin_5  ,
                             (BitAction)((1-GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_5))));
                EXTI_ClearFlag(EXTI_Line13);
        }
}
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
沉淀淀
1楼-- · 2019-03-23 22:17
 精彩回答 2  元偷偷看……
zhaojun_xf
2楼-- · 2019-03-24 00:09
什么内核都没有问题,先看懂STM的库,库里边有各种例程,照着例程编写,应该没有什么问题。

一周热门 更多>