a1200220417 发表于 2018-7-17 14:48:01

stm32f446外部中断配置后触发不了中断

外部中断配置如下,配置完成中断函数无法进去
/*-----------------------------------------------------------
Function:
Input:
Output:
Description:外部中断配置
-------------------------------------------------------------*/
void Exit_Config(void)
{

NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef   EXTI_InitStructure;
GPIO_InitTypeDef   GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能SYSCFG时钟

   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);

   /* Configure PC3 pin as input floating */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource3);

EXTI_InitStructure.EXTI_Line = EXTI_Line3;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_LineCmd = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_Trigger = ENABLE;
EXTI_Init(&EXTI_InitStructure);   //初始化外设EXTI寄存器

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

EN_CCWAKE_INT;
EXTI->IMR |= (EXTI_Line3 );
EXTI_ClearITPendingBit(EXTI_Line3);
//EXTI_GenerateSWInterrupt(EXTI_Line3);
}

wenyangzeng 发表于 2018-7-17 14:58:03

参阅ST官方代码,貌似少了一句:
EXTI_InitStructure.EXTI_LineCmd = ENABLE;

发表于 2018-7-17 15:12:19

如楼上说的,楼主把触发方式和开启写反了。
EXTI_InitStructure.EXTI_Line = EXTI_Line8;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
页: [1]
查看完整版本: stm32f446外部中断配置后触发不了中断