本帖最后由 chendiand 于 2015-3-15 19:57 编辑
今天想用按键进入外部中断,却不能进入中断,求大神指导,中断函数:
- #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);
- }
- }
复制代码
|
优先级设为0了,而且就这一个中断啊
楼主,我也是这样,配置函数看了N遍了。就是不进中断函数。还没解决,求指点。