Перейти к основному содержимому

STM32

STM32 — большое семейство 32-битных микроконтроллеров STMicroelectronics. В робототехнике их выбирают, когда нужны таймеры, ADC, несколько интерфейсов, аппаратная отладка и более предсказуемая работа с периферией.

В статье используется конкретный ориентир — STM32 Blue Pill, небольшая учебная плата, которую чаще всего делают на микроконтроллере STM32F103C8T6. Это не официальная отладочная плата ST, поэтому у разных экземпляров могут отличаться качество сборки, маркировка микроконтроллера и мелкие элементы схемы.

STM32 Blue Pill: реальная плата STM32F103C8T6

Коротко

STM32 Blue Pill — компактная плата на STM32F103 с логикой 3,3 В, Micro USB, выводами GPIO по бокам и SWD-разъёмом для программатора. Она хороша для перехода от Arduino к STM32, но требует аккуратной проверки питания, распиновки и способа прошивки.

Что это за контроллер

STM32F103C8T6 — микроконтроллер, а Blue Pill — плата вокруг него. На плате обычно есть Micro USB, стабилизатор 3,3 В, кнопка Reset, перемычки BOOT0/BOOT1, светодиод пользователя на PC13, боковые гребёнки выводов и отдельный разъём SWD.

Для робота STM32 интересен не только частотой ядра. Его сила в периферии: таймеры формируют PWM и считают энкодеры, ADC измеряет аналоговые датчики, DMA переносит данные без постоянного участия процессора, а SWD позволяет остановить программу и посмотреть регистры во время отладки.

Blue Pill удобно использовать там, где нужна маленькая и недорогая плата, но уже хочется изучать настоящие STM32: альтернативные функции выводов, clock tree, таймеры, прерывания и отладку через ST-LINK.

Преимущества и недостатки

СторонаЧто это значит для проекта
Низкая цена и компактностьПлату легко поставить в небольшой учебный робот или использовать как сменный модуль.
STM32F103 внутриДоступны таймеры, ADC, UART/USART, SPI, I²C, USB FS, CAN и DMA.
SWD-разъёмС внешним ST-LINK можно прошивать, ставить точки останова и смотреть регистры.
Много учебных материаловBlue Pill часто используют для первого знакомства со STM32.
Нет встроенного программатораДля нормальной отладки нужен внешний ST-LINK или совместимый программатор.
Неофициальная платаУ разных продавцов встречаются отличия в микроконтроллере, USB-цепи, стабилизаторе и качестве пайки.
3,3-вольтовая логикаНе каждый внешний 5 В модуль можно подключить напрямую.
Сложнее старт, чем с ArduinoНужно понимать BOOT-перемычки, clock tree, альтернативные функции и datasheet.

STM32 хорошо подходит продвинутым школьникам и студентам, которые уже понимают GPIO и хотят увидеть более профессиональную разработку встраиваемых систем.

Распиновка STM32 Blue Pill

На Blue Pill нет Arduino-совместимых разъёмов. Контакты выведены двумя рядами по бокам платы, а часть служебных линий находится на отдельном SWD-разъёме. Один и тот же физический вывод может иметь несколько альтернативных функций, поэтому pinout всегда сверяют с datasheet и схемой конкретной платы.

Распиновка STM32 Blue Pill

В STM32 важно проверять цепочку целиком: физический контакт платы, вывод микроконтроллера, альтернативная функция, канал периферии, тактирование и электрические пределы. Ошибка на любом уровне делает подключение нерабочим.

Для Blue Pill особенно важно заранее оставить доступ к SWDIO, SWCLK, 3V3 и GND. Если плата уже установлена в корпус робота, а SWD закрыт, прошивка и отладка быстро превращаются в неудобную механическую задачу.

Мощностные и функциональные характеристики

ПараметрЗначение для STM32 Blue Pill / STM32F103C8T6
ЯдроArm Cortex-M3
Частотадо 72 МГц
Flash64 КБ для STM32F103C8T6
SRAM20 КБ
Напряжение микроконтроллерадиапазон питания микроконтроллера 2,0-3,6 В; логика платы 3,3 В
Питание платыобычно Micro USB 5 В, вывод 5V или вывод 3V3; конкретную плату проверяют по схеме
Разъёмыдва боковых ряда GPIO, SWD, Micro USB, BOOT0/BOOT1
Отладчиквстроенного ST-LINK нет; нужен внешний ST-LINK или совместимый программатор
ИнтерфейсыGPIO, ADC 12 бит, UART/USART, SPI, I²C, USB FS, CAN, таймеры, DMA
Особенности платысветодиод PC13, кнопка Reset, перемычки BOOT0/BOOT1

Часть выводов STM32 может быть 5 В tolerant только при условиях, указанных в datasheet. Это не разрешение подключать любые 5 В сигналы куда угодно. Аналоговые входы, режимы питания и специальные функции имеют отдельные ограничения.

На многих Blue Pill выводы 5V связаны с питанием USB без полноценной защиты. Поэтому не стоит одновременно питать плату от USB и внешнего источника 5 В, пока не проверена схема именно вашего экземпляра.

Совместимые языки и IDE

ИнструментКогда использовать
STM32CubeIDEОсновной учебный и профессиональный вариант от ST: настройка, сборка, прошивка и отладка через внешний ST-LINK.
STM32CubeMXУдобен для конфигурации пинов, clock tree и периферии.
Keil MDK / IAR EWARMЧасто встречаются в промышленной разработке и учебных лабораториях.
PlatformIOПодходит для проектов в VS Code и сборки под разные платы.
Arduino IDEВозможна через STM32duino, но важно помнить, что это упрощённый слой поверх STM32.
Zephyr / Mbed / RustВозможны для более продвинутых занятий, если есть поддержка конкретной платы и выбранного чипа.

Обычно STM32 изучают на C/C++. HAL помогает стартовать быстрее, LL и регистры дают больше контроля, но требуют лучшего понимания reference manual.

Специфичные функции STM32 в сравнении

По сравнению с Arduino Uno, Blue Pill даёт больше частоту, 32-битное ядро, больше SRAM и более развитую периферию. По сравнению с ESP32, у Blue Pill нет встроенного Wi-Fi/Bluetooth, зато проще получить предсказуемые тайминги и работать с классической STM32-периферией.

Для робототехники особенно полезны таймеры в режимах PWM, input capture и encoder interface. Это позволяет формировать сигналы драйверу моторов и считать энкодеры аппаратно, без постоянного ручного опроса в основном цикле. DMA полезен там, где нужно собирать массивы измерений ADC или принимать данные без лишней нагрузки на ядро.

Главная специфичная деталь Blue Pill — не функция, а дисциплина работы с платой. Нужно проверять, настоящий ли стоит микроконтроллер, правильно ли работает USB, какой загрузчик используется и не заняты ли нужные выводы служебными цепями.

Что проверить перед подключением

ПроверкаЗачем она нужна
Полное имя микроконтроллера и платыНе спутать STM32F103C8T6 с похожей платой или совместимым клоном.
Таблица альтернативных функцийУбедиться, что выбранный пин поддерживает нужный таймер, UART, SPI или I²C.
Clock treeПонять реальные частоты таймеров и шин.
Электрические пределыНе подать неподходящее напряжение на вход.
BOOT0/BOOT1Понять, из какой области памяти стартует микроконтроллер.
Состояние при сбросеДрайверы моторов должны оставаться выключенными до явного разрешения.
Отладочный доступSWD/ST-LINK лучше оставить доступным хотя бы на время разработки.
Питание USB и 5VНе создать конфликт между USB и внешним источником питания.

Практика

Возьмите pinout именно вашей платы STM32 и выберите пины для одного UART, одного PWM-канала таймера и интерфейса SWD. Запишите не только подписи на плате, но и номера GPIO с альтернативными функциями. Проверьте, что выбранные функции не конфликтуют.

Результат готов, если рядом с каждым пином указан источник проверки — pinout или datasheet конкретного микроконтроллера, а SWDIO и SWCLK оставлены доступными для отладки.

Проверьте себя

  1. Почему нельзя говорить «любой STM32 работает на 72 МГц»?
  2. Чем микроконтроллер STM32F103C8T6 отличается от платы STM32 Blue Pill?
  3. Зачем Blue Pill нужен внешний ST-LINK?
  4. Что такое альтернативная функция вывода?
  5. Почему STM32 требует проверки clock tree?
  6. Почему нельзя считать все Blue Pill полностью одинаковыми?
Ориентиры для самопроверки

Сначала ответьте без подсказки. Ответ можно считать полным, если вы:

  • формулируете основную мысль своими словами;
  • называете важные условия, ограничения или меры безопасности;
  • для схемы, кода или расчёта показываете ход решения и ожидаемый результат.

Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.

Словарь статьи

  • STM32 — семейство 32-битных микроконтроллеров STMicroelectronics, а не одна модель.
  • Альтернативная функция — аппаратная периферия, которую можно назначить конкретному выводу.
  • Clock tree — схема распределения тактовых частот между ядром и периферией.
  • SWD — двухпроводной интерфейс прошивки и аппаратной отладки.
  • ST-LINK — программатор-отладчик для микроконтроллеров STM32.

Связанные темы

Источники