STM32 HAL. Часть 1 - GPIO и внешние прерывания.

Приветствую коллеги и просто любопытствующие. Я несколько лет занимаюсь разработкой ПО для встраиваемых систем. В основном для STM32 с использованием Standart Peripheral Library. Недавно попытался пересесть на их HAL под названием CUBE. Мягко говоря, разочаровался этим непродуманным продуктом и окончательно решил, что надо поделиться своим собственным HAL-ом, который накатывается поверх Standart Peripheral Library. В этой и, очень надеюсь, последующих статьях я выложу коды, опишу их и примеры их использования. Кому это интересно — прошу под кат.

Читать дальше

8L-Курс, Часть 3 - Прерывания, EXTI

← Часть 2 — GPIO Содержание Часть 4 — Тактирование →

Мы уже умеем работать с GPIO. Выставлять нужные уровни и читать состояния ножек, настроенных на вход. Но что, если нужно не просто прочитать состояние ножки, а быстро отреагировать на смену уровня? А если таких ножек несколько? Тут нам на помощь приходит система внешних прерываний — EXTI (EXTernal Interrupts). Она довольно гибко настраивается и позволяет получить прерывание с любой ножки МК, что дико удобно — не нужно подстраивать разводку платы под пару специальных ножек INT, как это было в большинстве AVR.


Читать дальше
  • +11
  • 09 февраля 2013, 14:35
  • dcoder
  • 1

STM32F103 внешние прерывания, проблема

Всем привет.

Использую внешнюю линию прерывания на порту GPIOA9.
Прерывание должно происходить по заднему фронту (на нем висит соответствующая нога W5100).
Все настроено, железо дергает ногу как положено, но контроллер после этого зацикливается на прерывании, независимо от состояния ноги. Для эксперимента воткнул в код обработчика выключение прерывания. Подействовало, но как только разрешаю прерывание — система зацикливается на нем не зависимо от состояния вывода мк.


Читать дальше