STM32F4+EXTI

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
TmYAG
Встал на лапы
Сообщения: 89
Зарегистрирован: Пн окт 14, 2013 21:39:47

STM32F4+EXTI

Сообщение TmYAG »

Всем привет! Нахожусь в процессе изучения EXTI. Настроил на порт А 0 пин (там кнопка висит). Все работает. Решил проверить, что будет если вывести на другой пин в моем примере 3 того же порта А, но при этом прерывание не возникает.

Код: Выделить всё

#include "stm32f4xx.h"
void EXTI0_IRQHandler(void)
{
   EXTI->PR |= EXTI_PR_PR3;//?????????? ???? ??????????
  GPIOD->BSRRL |= (1 << 15)|(1 << 14)|(1 << 13)|(1 << 12);
 
}

int main()
{
  RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; /*Clocking port D*/
   RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;/*Clocking port A*/
  RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;/*Clocking SYSCFG*/
 
  GPIOD->MODER |= 0x55000000;/*Set pins 15, 14, 13, 12 as output*/
  GPIOD->OTYPER = 0; /**/
  GPIOD->OSPEEDR = 0; /**/
   
   GPIOA->PUPDR |= GPIO_PUPDR_PUPDR3_0;
   
  SYSCFG->EXTICR[0] = SYSCFG_EXTICR1_EXTI3_PA; /*Port A line 3*/
  EXTI->RTSR |= EXTI_RTSR_TR3; /*Rising*/
   EXTI->FTSR |= EXTI_FTSR_TR3;/*Falling*/
  NVIC_EnableIRQ(EXTI0_IRQn); /*Enable EXTI interrupt*/
  NVIC_SetPriority (EXTI0_IRQn, 2);
  EXTI->IMR |=EXTI_IMR_MR3;//Enable EXTI interrupt
  while(1)
  {   
      /*if (GPIOA->IDR & (1 << 0))
         {
            GPIOE->BSRRL |= (1 << 1);
         }
         else
         {
            GPIOE->BSRRH |= (1 << 1);
         }*/

  }
}

В чем проблема не могу понять, вроде все просто. Может кнопку не правильно повесил на пин.
З.Ы. Знаю что не лучший способ играться с EXTI путем работы с кнопкой, но по-моему это самый очевидный способ увидеть работу. Против дребезга ничего не делаю.
Вложения
L6_EXTI_Button_LED_CMSIS.zip
(709.82 КБ) 159 скачиваний
pixar
Потрогал лапой паяльник
Сообщения: 314
Зарегистрирован: Чт ноя 29, 2012 08:27:22

Re: STM32F4+EXTI

Сообщение pixar »

TmYAG писал(а): NVIC_EnableIRQ(EXTI0_IRQn); /*Enable EXTI interrupt*/
NVIC_SetPriority (EXTI0_IRQn, 2);


-> EXTI15_10 , EXTI15_10_IRQHandler
halisi
Родился
Сообщения: 19
Зарегистрирован: Пн мар 11, 2013 01:46:59

Re: STM32F4+EXTI

Сообщение halisi »

+
EXTI0_IRQHandler

это обработчик прерывания для линии 0. А для третьего пина - нужен другой
Ответить

Вернуться в «ARM»