реклама на сайте
подробности

 
 
> Не могу понять почему не работают EXTINT, STM32F103
mempfis_
сообщение Jun 23 2015, 07:54
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Всем добрый день.

Есть проблема с настройкой внешних прерываний в STM32F103
Необходимо по заднему фронту кнопки зажигать/гасить светодиод. Кнопка висит на PB15.
Светодиод рабочий на 100 процентов также как и кнопка.
Код обработчика прерываний и настройки внешних прерываний.

Код
void EXTI3_IRQHandler(void)
{
  static unsigned int led_stat = 0;
  
  //if(EXTI->PR & EXTI_IMR_MR15)
  {
    EXTI->PR = EXTI_IMR_MR15; //clear pendig interrupt
    if(led_stat == 0)
    {
      led_stat = 1;
      SLED_SET(SLED_0_MSK);
    }
    else
    {
      led_stat = 0;
      SLED_CLR(SLED_0_MSK);
    }
  }
  
  _putcharDebug('\r');
  _putcharDebug('e');
  _putcharDebug('\n');
  
}


void extIntInit(void)
{
  RCC->APB2ENR |= RCC_APB2ENR_AFIOEN | RCC_APB2ENR_IOPBEN;
  __no_operation();
  
  
  AFIO->EXTICR[3] = AFIO_EXTICR4_EXTI15_PB;
  EXTI->FTSR = EXTI_FTSR_TR15; //falling edge
  //EXTI->RTSR = SW2_EXT_INT_BIT_MSK; //risig edge
  
  NVIC_SetPriority(EXTI3_IRQn, EXTI3_IRQ_PRIO);
  NVIC_EnableIRQ(EXTI3_IRQn);
  
  EXTI->IMR = EXTI_IMR_MR15;
  //EXTI->EMR = EXTI_IMR_MR15;
    
}


Программа не большая - содержит 3 источника прерываний (UART1, TIM3, EXT3). UART1 и TIM3 работают без проблем.
Есть задача сканирования кнопок по таймеру.
При опросе кнопки в задаче сканирования кнопок зажигаются 3 светодиода - т.о. пин PB15 рабочий.
4й светодиод проверен и должен зажигаться только по прерыванию. Код настройки внешних прерываний составлен на основе документации, также сравнил с примерами из интернета и тем, что генерирует stm32Cube. Различий я не вижу.
При нажатии кнопки PB15 программа не виснет и не перезагружается, но и прерывание EXT3 не генерируется.

Может кто что подскажет по настройкам. Спасибо.



Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01375 секунд с 7
ELECTRONIX ©2004-2016