在 IAR 编译器上使用 STM32L151xx。
我正在尝试获取 EXTI 中断,但一无所获,这是我的代码,基本上直接来自示例代码,但不起作用,
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_Init(GPIOA, &GPIO_InitStructure);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource10);
EXTI_InitStructure.EXTI_Line = EXTI_Line1;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//0x0F;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//0x0F;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
EXTI_GenerateSWInterrupt(EXTI_Line1);
当我将 PA10 引脚拉高时,我没有收到软件中断,代码没有转到 EXTI1_IRQHandler()
,似乎缺少什么?
编辑
在 EXTI_GetFlagStatus
上我得到 0
和 EXTI_GETITStatus
我得到 0
最佳答案
PA9
连接到 Line9
,以及 PA10
Line 10
通过 EXTI9_5_IRQHandler 进行中断服务( EXTI9_5_IRQn)
和 EXTI15_10_IRQHandler (EXTI15_10_IRQn)
关于c - STM32L-发现 EXTI 中断失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19157681/