добавил в проект файл stm32l1xx_syscfg.c
и подключил к линии EXTI0 порт А
Код
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0); // Connect EXTI line 0 to PA.0
один хрен не работает. Что упускаю еще? Может тактирование разрешить? На порт А подаю
Код
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
вот код с обработчиком
Код
void EXTI0_IRQHandler(void) {
on (LED_Green);
EXTI->PR |= EXTI_PR_PR0;//сбросили бит прерывания
}
...
...
...
GPIOA->MODER &= ~GPIO_MODER_MODER0; //input
GPIOA->OTYPER &= ~GPIO_OTYPER_OT_0; //Output push-pull
GPIOA->OSPEEDR |=GPIO_OSPEEDER_OSPEEDR0; //40 MHz
GPIOA->PUPDR &=~GPIO_PUPDR_PUPDR0; //No pull-up, pull-down
//настройка внешнего прерывания на int0
__enable_irq ();
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0); // Connect EXTI line 0 to PA.0
EXTI->IMR |= EXTI_IMR_MR0; // какую линию выбираем из 23-х (у нас 0-я)
EXTI->RTSR |= EXTI_RTSR_TR0; //настройка фронта-среза
NVIC_EnableIRQ(EXTI0_IRQn);
NVIC_SetPriority(EXTI0_IRQn, 15);
Цитата(demiurg_spb @ Jan 11 2013, 14:23)

Вспомнил! Потому что альтернативная функция может быть только на вывод, а нога то на ввод настраивается.
осторожно не соглашусь) А где это сказано?
т.к. под UART я настраивал под альтернативную и вход и выход
Код
...
//Инициализация выводов: PA9 - USART1_TX, PA10 - USART1_RX
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //Включаем тактирование GPIOА
//Для выводов PA9, PA10 выбираем альтернативную функцию работы с USART1
GPIOA->AFR[1] |= (7<<4) | (7<<8); //для PA9 и PA10 задаем значение альтернативной функции - AF7, что соответствует USART1_TX
//Инициализации вывода PA10 - USART1_Rx По умолчанию он Input floating
GPIOA->MODER |= GPIO_MODER_MODER10_1; //Alternate function mode
//Инициализации вывода PA9 - USART1_Tx
GPIOA->MODER |= GPIO_MODER_MODER9_1; //Alternate function mode
GPIOA->OTYPER &= ~GPIO_OTYPER_OT_9; //Output push-pull
GPIOA->OSPEEDR |=GPIO_OSPEEDER_OSPEEDR9_1; //10 MHz
GPIOA->PUPDR &=~GPIO_PUPDR_PUPDR9; //No pull-up, pull-down
...
Сообщение отредактировал Метценгерштейн - Jan 11 2013, 10:41