Изучаю тему с прерываниями/ Есть stm32f103ve к ноге PD12 установлена кнопка, при нажатии должно срабатывать прерывание.
код:
Код
int main() {
RCC->APB2ENR |= RCC_APB2Periph_GPIOD;
GPIOD->CRL |= 0x04;
GPIOD->CRL &= ~0xb;
AFIO->EXTICR [0] = AFIO_EXTICR4_EXTI12_PD;
EXTI->FTSR |= EXTI_FTSR_TR0;
EXTI->IMR |= EXTI_IMR_MR0;
NVIC_EnableIRQ (EXTI0_IRQn);
while(1)
{
//Программа ничего не делает в пустом цикле
}
}
// Обработчик прерывания EXTI0
void EXTI0_IRQHandler(void)
{
if (EXTI->PR & (1<<0)) //проверяем прерывание от EXTI0
{
GPIOC->BRR = GPIO_BRR_BR8;//тушим светодиод
EXTI->PR |= EXTI_PR_PR1; //сброс флага прерывания
}
}
но прерывание срабатывает на ножке PA0. где я ошибся?
Сообщение отредактировал IgorKossak - Jan 15 2015, 11:14
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!