Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 05.08.2013
Сообщений: 49

STM32F4+ EXTI

07.03.2016, 20:31. Показов 4244. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Нахожусь в процессе изучения EXTI. Настроил на порт А 0 пин (там кнопка висит). Все работает. Решил проверить, что будет если вывести на другой пин в моем примере 3 того же порта А, но при этом прерывание не возникает.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "stm32f4xx.h"
void EXTI0_IRQHomdler(void)
{
EXTI->PR |= EXTI_PR_PR3;//?????????? ???? ??????????
GPIOD->BSRRL |= (1 << 15)|(1 << 14)|(1 << 13)|(1 << 12);
 
}
 
int main()
{
RCC->AHB1ENR |= RCC_AHB1ENR_GPIODIM; /*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 путем работы с кнопкой, но по-моему это самый очевидный способ увидеть работу. Против дребезга ничего не делаю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.03.2016, 20:31
Ответы с готовыми решениями:

Скорость обработки EXTI в STM32F4
Здравствуйте. Есть ли программные возможности ускорения реакции STM32F4 на внешние прерывания? В...

EXTI у STM8S103K3
Не могу разобраться с внешними прерываниями у данного контроллера. это читал, но не могу...

Прерывание EXTI на stm32f303
Всем добрый вечер!:) Начал изучать новый микроконтроллер и хочу зажигать светодиоды от нажатия...

4
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 553
07.03.2016, 21:16
Code
1
void EXTI0_IRQHomdler(void)
Наверное потому, что на пин 3 будет EXTI3 и соответственно EXTI3_IRQHomdler()?

Code
1
EXTI->PR |= EXTI_PR_PR3;
И так, побухтеть: тут не надо OR делать, достаточно просто присваивания.
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
07.03.2016, 21:18
А Ваш код для какого пина?
Пока каша какая-то - пин вроде 3 настраиваете, а обработчик для нулевого...

Да и вот это:
NVIC_SetPriority (EXTI0_IRQn, 2);

вроде как не 3-й пин включает, а нулевой ....

Могу дать рабочий пример для PA4, правда на SPL. Прекрасно пашет достаточно длительное время.
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
07.03.2016, 21:49
TmYOK, а как же семисегментник ? :))))))

Кстати по EXTI уже здесь же пробегало...
0
0 / 0 / 0
Регистрация: 05.08.2013
Сообщений: 49
08.03.2016, 10:15
Спасибо за ответы! Проглядел я то, что первые 5 EXTI линий самостоятельны и для них существуют свои обработчики EXTI0_IRQHomdler, EXTI1_IRQHomdler, EXTI2_IRQHomdler, EXTI3_IRQHomdler, EXTI4_IRQHomdler. А для линий с 5-9 и с 10-15 обработчики сгруппированы EXTI9_5_IRQHomdler и EXTI15_10_IRQHomdler.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.03.2016, 10:15
Помогаю со студенческими работами здесь

Внешние события EXTI
Заранее прошу прощения за слегка глупый вопрос, но не могу сообразить по какому регистру отследить...

STM32F103 + EXTI + время
Помогите разобраться пожалуйста. Имеется плата HY-MINI32. Не получается реализовать все кнопки,...

Не сбрасывается флаг прирывания EXTI
В отладчике через ST-LINK работаю, и флаг прерывания не сбрасывается , тоесть все время...

STM32 триггер DMA по EXTI.
Скажите пожалуйста можно ли синхронизировать DMA по сигналу внешнего прерывания? Те чтобы ДМА...

Вопрос по одновременному включению EXTI и AWU
Дописываю устройства для сбора данных с датчиков для умного дома на STM8 Суть вопроса: У...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru