Демонстрация подавления дребезга контактов

preview_player
Показать описание

В качестве демонстрации дребезга здесь применены сами нажатия кнопки, как процесс медленный и наглядный. В реальном применении вместо нажатия будут уже перепады уровней от дребезга.

Принцип работы:
Настраивается прерывание EXTI на изменение уровня сигнала.
В обработчике EXTI запускается таймер на определённый период, а вызов обработчика EXTI блокируется, сохраняется только флаг наличия прерывания.
По таймеру смотрим флаг EXTI чтобы узнать, было ли получено за период таймера новое прерывание EXTI.
Если было получено, флаг сбрасывается и таймер запускается снова.
Если не было получено, состояние кнопки можно считать устоявшимся. Таймер отключается, вызов обработчика EXTI разрешается снова. Новое состояние сообщается, куда нужно.
Рекомендации по теме