今天想用按键进入外部中断,却不能进入中断,求大神指导,中断函数:
#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);
}
}
此帖出自
小平头技术问答
一周热门 更多>