Микроконтроллеры STM32 — более сложные и высокоуровневые устройства, чем привычные PIC и AVR. Разработка программ под эти контроллеры сложнее, особенно для новичков — настолько, что некоторые боятся даже приступать к их изучению. Гораздо легче будет, если составить некий план изучения, и двигаться в соответствии с ним. Я покажу, что ничего сложного в этом нет, и не стоит из-за страха неудачи лишать себя радостей прогресса :)

1. С чего начать/отладочная плата

Наверняка у вас уже есть одна из отладочных плат STM32 — какая-то из семейства DIscovery: STM32VLDiscovery (раньше она называлась STM32-Discovery), STM32F**Discovery, STM32F3Discovery, или STM32F4Discovery. Я бы рекомендовал начать с самой младшей платы — STM32VL**Discovery, а если у вас её ещё нет, и вы собираетесь её покупать — обязательно прочитайте мой обзор плат STM32Discovery.

Отладочная плата STM32VLDiscovery

Как я уже сказал, лучше начинать с STM32VLDiscovery — она самая старая, простая, дешёвая и доступная, а небольшие изменения в более новых версиях библиотек не страшны.

Она питается и программируется через USB, но имеет и возможность питания от внешнего источника 5 или 3.3 вольт — так что вы сможете поставить её напрямую в своё устройство, если по каким-то причинам не хотите или не можете сделать плату и паять микроконтроллер на неё. На самом деле, пайка TQFP-48 не так сложна, как кажется.

На плате есть одна пользовательская кнопка, и кнопка Reset. Также здесь распаяны два светодиода, а наружу выведен 51 контакт ввода-вывода. Кварц на плате можно менять на другой, но для нас с вами это пока не так важно.

Когда вы начнёте делать свои платы с контроллерами STM32 — вам понадобится программатор. Очень удобно не покупать его, а использовать программатор с платы дискавери — контакты программатора выведены на разъём с названием SWD, нужно лишь переключить программатор в режим внешнего устройства, сняв джамперы с разъёма CN3.

2. Первые опыты с платой Discovery

Я считаю, что изучение в любом случае нужно начинать с примеров, предлагаемых производителем. В обзоре отладочных плат можно скачать архив с примерами к каждой плате. На плате по умолчанию прошит хороший пример демонстрации возможностей — включите плату, посмотрите на то, что она может. Правда, в начале вам это мало поможет, хотя можете посмотреть код этого примера (лежит в папке примеры -> project -> Master_Workspace).

Я рассматриваю разработку в среде IAR, поэтому смотрите внимательно — в каждом примере есть папка «EWARM» — там лежит проект именно под среду IAR. Запускайте файл с расширением eww — если у вас установлен IAR, это будет единственный файл с иконкой.

Самое первое, что нужно сделать с платой Discovery — это воплотить на ней стандартный электронный Hello world, помигать светодиодами. Для этого предназначен пример project -> IO_Toggle. Обязательно попробуйте что-нибудь в нём изменить, к примеру частоту мигания светодиодов.

А теперь — помигаем светодиодом, поуправляем светодиодом из USART-консоли и поуправляем из той же консоли сервомоторчиком. Если всё получилось — настроим яркость светодиода с помощью ШИМ.

Особенно советую прочитать мой цикл статей «STM32 с нуля».