STM32L-Discovery EXTI Ошибка прерывания
Работает над STM32L151xx на компиляторе IAR.
Я пытаюсь получить прерывание 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
1 ответ
Решение
PA9
связан с Line9
, а также PA10
Line 10
Служба прерывания через EXTI9_5_IRQHandler (EXTI9_5_IRQn)
, а также EXTI15_10_IRQHandler (EXTI15_10_IRQn)