Контроллер внешних событий и прерываний EXTI является по сути расширителем NVIC. Он имеет 23 детектора уровня, для генерации событий/прерываний. Каждая линия может быть независимо настроена на свой тип сигнала(уровень или импульс). Первые 16 линий отданы портам в/в. Вот их то мы и будем рассматривать.
Так как портом у нас несколько(9) то каждую из линий можно подключить только к одной линии одного порта. Т.е по сути можно воспользоваться 16 выводами в сумме. Как указано в дш чтобы распределять м/у портам линии внешних событий используя системную настройку - SYSCFG->EXTIx. Необходимо помнить что пользоватся внешними прерываниями можно только тогда когда линия порта находится в состоянии ввода.
Начнем с создания базовой директории:
nis@jane ~/stm32/f4examples $ mkdir 04-exti
nis@jane ~/stm32/f4examples $ cd 04-exti/
После создадим базовый проект:
nis@jane ~/stm32/f4examples/04-exti $ cp -av ../03-systick/00-base/ .
Для начала возьмем относительно простой пример - включение светодиода при нажатии кнопки и выключение при отпускании.
Имея текущее представление попробуем использовать навыки для более сложного примера - усовершенствуем пример Мигание светодиодов со сменой режима по новому, добавив в него обработку нажатия кнопки по прерыванию.