Всем привет) Сразу о проблеме, хочу сделать прерывание по изменению состояния ноги PC13!!! не могу разобраться что не так(( Вродеб делаю все как и в примере к discovery для ножки PA0, но видимо что-то упустил...
подскажите что не так?
Код:
|
#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;
}
} |
Кстати эта программа ведет себя очень странно!Она все время вылетает в обработчик EXTI15_10_IRQHandler !!!!!!!!