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

 
 
> STM32L152 внешние прерывания, не разобраться
Метценгерштейн
сообщение Jan 10 2013, 22:09
Сообщение #1


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



именно под проц L

хочу настроить ногу РА0 на срабатывание.

мне порт РА0 конфигурить как альтернативную функцию или просто как порт на вход?

где указать для этого проца, что EXTI0 будет именно на порт А?


чего еще не хвататет, чтобы заработало?
Код
  EXTI->IMR |= EXTI_IMR_MR0; // конфига the mask bits
  EXTI->RTSR |= EXTI_RTSR_TR0; //настройка фронта-среза
  EXTI->FTSR |= EXTI_FTSR_TR0; //настройка фронта-среза
  NVIC_EnableIRQ(EXTI0_IRQn);
  NVIC_SetPriority(EXTI0_IRQn, 15);

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Метценгерштейн
сообщение Jan 11 2013, 11:08
Сообщение #2


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



добавил в проект файл stm32l1xx_syscfg.c

и подключил к линии EXTI0 порт А
Код
  SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);   // Connect EXTI line 0 to PA.0


один хрен не работает. Что упускаю еще? Может тактирование разрешить? На порт А подаю
Код
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;


вот код с обработчиком
Код
void EXTI0_IRQHandler(void) {
  on (LED_Green);
  EXTI->PR |= EXTI_PR_PR0;//сбросили бит прерывания
}
...
...
...
  GPIOA->MODER &= ~GPIO_MODER_MODER0;  //input
  GPIOA->OTYPER &= ~GPIO_OTYPER_OT_0;  //Output push-pull
  GPIOA->OSPEEDR |=GPIO_OSPEEDER_OSPEEDR0;  //40 MHz
  GPIOA->PUPDR &=~GPIO_PUPDR_PUPDR0;  //No pull-up, pull-down
  
  //настройка внешнего прерывания на int0
  __enable_irq ();
  SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);   // Connect EXTI line 0 to PA.0
  EXTI->IMR |= EXTI_IMR_MR0; // какую линию выбираем из 23-х (у нас 0-я)
  EXTI->RTSR |= EXTI_RTSR_TR0; //настройка фронта-среза
  NVIC_EnableIRQ(EXTI0_IRQn);
  NVIC_SetPriority(EXTI0_IRQn, 15);


Цитата(demiurg_spb @ Jan 11 2013, 14:23) *
Вспомнил! Потому что альтернативная функция может быть только на вывод, а нога то на ввод настраивается.

осторожно не соглашусь) А где это сказано?
т.к. под UART я настраивал под альтернативную и вход и выход
Код
...
//Инициализация выводов: PA9 - USART1_TX, PA10 - USART1_RX
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); //Включаем тактирование GPIOА
  
  //Для выводов PA9, PA10 выбираем альтернативную функцию работы с USART1
  GPIOA->AFR[1] |= (7<<4) | (7<<8); //для PA9 и PA10 задаем значение альтернативной функции - AF7, что соответствует USART1_TX
  
  //Инициализации вывода PA10 - USART1_Rx По умолчанию он Input floating
  GPIOA->MODER |= GPIO_MODER_MODER10_1;  //Alternate function mode  
  //Инициализации вывода PA9 - USART1_Tx
  GPIOA->MODER |= GPIO_MODER_MODER9_1;  //Alternate function mode
  GPIOA->OTYPER &= ~GPIO_OTYPER_OT_9;  //Output push-pull
  GPIOA->OSPEEDR |=GPIO_OSPEEDER_OSPEEDR9_1;  //10 MHz
  GPIOA->PUPDR &=~GPIO_PUPDR_PUPDR9;  //No pull-up, pull-down
...


Сообщение отредактировал Метценгерштейн - Jan 11 2013, 10:41
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Метценгерштейн   STM32L152 внешние прерывания   Jan 10 2013, 22:09
- - demiurg_spb   Цитата(Метценгерштейн @ Jan 11 2013, 02:0...   Jan 11 2013, 05:37
- - Метценгерштейн   т.е. нога у Вас просто как вход. Не как альтернати...   Jan 11 2013, 08:34
|- - demiurg_spb   Цитата(Метценгерштейн @ Jan 11 2013, 12:3...   Jan 11 2013, 10:23
- - ek74   Цитата(Метценгерштейн @ Jan 11 2013, 02:0...   Jan 11 2013, 10:12
|- - demiurg_spb   Вот мой обработчик:Кодvoid __irq EXTI15_10_IRQHand...   Jan 11 2013, 13:24
- - Метценгерштейн   обработчик Кодvoid EXTI0_IRQHandler(void) ...   Jan 11 2013, 15:30
|- - MiklPolikov   Функция обработчик у Вас так называется ? Кодvoid...   Jan 12 2013, 13:41
- - Метценгерштейн   да, обработчик такой- выше сообщение- там он как р...   Jan 12 2013, 13:56
- - Метценгерштейн   разобрался- заработало. Причина- был выбран в прое...   Jan 12 2013, 15:56
|- - _Артём_   Цитата(Метценгерштейн @ Jan 12 2013, 17:5...   Jan 12 2013, 16:37
- - Метценгерштейн   да, заработало. Вспомнил, что уже наступал на эти...   Jan 12 2013, 18:58


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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 04:06
Рейтинг@Mail.ru


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