подскажите что не так?
Код
#include "stm32f4xx.h"
void EXTI15_10_IRQHandler(void)
{
EXTI->PR |=EXTI_PR_PR13;
}
int main(void)
{
SystemInit();
//***********RCC****************
RCC->APB2ENR |=RCC_APB2ENR_SYSCFGEN;
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN;
//***********GPIOC**************
GPIOC->MODER &=~GPIO_MODER_MODER13; //INPUT
GPIOC->PUPDR &=~GPIO_PUPDR_PUPDR13; //БЕЗ ПОДТЯЖКИ
//***********SYSCFG*************
SYSCFG->EXTICR[4] |= SYSCFG_EXTICR4_EXTI13_PC;// PC13
//***********EXTI***************
EXTI->IMR |=(EXTI_IMR_MR13); //РАЗРЕШАЕМ ПРЕРЫВАНИЯ ДЛЯ PC13
EXTI->RTSR |=(EXTI_RTSR_TR13); //ПО СПАДУ
EXTI->FTSR |=(EXTI_FTSR_TR13); //ПО ФРОНТУ
//***********NVIC***************
NVIC_EnableIRQ(EXTI15_10_IRQn); //РАЗРЕШАЕМ ПРЕРЫВАНИЯ
NVIC_SetPriority(EXTI15_10_IRQn,14); //ПРИОРИТЕТ 14
while(1)
{
IWDG->KR =0xAAAA;
}
}
void EXTI15_10_IRQHandler(void)
{
EXTI->PR |=EXTI_PR_PR13;
}
int main(void)
{
SystemInit();
//***********RCC****************
RCC->APB2ENR |=RCC_APB2ENR_SYSCFGEN;
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN;
//***********GPIOC**************
GPIOC->MODER &=~GPIO_MODER_MODER13; //INPUT
GPIOC->PUPDR &=~GPIO_PUPDR_PUPDR13; //БЕЗ ПОДТЯЖКИ
//***********SYSCFG*************
SYSCFG->EXTICR[4] |= SYSCFG_EXTICR4_EXTI13_PC;// PC13
//***********EXTI***************
EXTI->IMR |=(EXTI_IMR_MR13); //РАЗРЕШАЕМ ПРЕРЫВАНИЯ ДЛЯ PC13
EXTI->RTSR |=(EXTI_RTSR_TR13); //ПО СПАДУ
EXTI->FTSR |=(EXTI_FTSR_TR13); //ПО ФРОНТУ
//***********NVIC***************
NVIC_EnableIRQ(EXTI15_10_IRQn); //РАЗРЕШАЕМ ПРЕРЫВАНИЯ
NVIC_SetPriority(EXTI15_10_IRQn,14); //ПРИОРИТЕТ 14
while(1)
{
IWDG->KR =0xAAAA;
}
}
Кстати эта программа ведет себя очень странно!Она все время вылетает в обработчик EXTI15_10_IRQHandler !!!!!!!!