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

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 особенно важно заранее оставить доступ к SWDIO, SWCLK, 3V3 и GND. Если плата уже установлена в корпус робота, а SWD закрыт, прошивка и отладка быстро превращаются в неудобную механическую задачу.
Мощностные и функциональные характеристики
| Параметр | Значение для STM32 Blue Pill / STM32F103C8T6 |
|---|---|
| Ядро | Arm Cortex-M3 |
| Частота | до 72 МГц |
| Flash | 64 КБ для STM32F103C8T6 |
| SRAM | 20 КБ |
| Напряжение микроконтроллера | диапазон питания микроконтроллера 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 оставлены доступными для отладки.
Проверьте себя
- Почему нельзя говорить «любой STM32 работает на 72 МГц»?
- Чем микроконтроллер STM32F103C8T6 отличается от платы STM32 Blue Pill?
- Зачем Blue Pill нужен внешний ST-LINK?
- Что такое альтернативная функция вывода?
- Почему STM32 требует проверки clock tree?
- Почему нельзя считать все Blue Pill полностью одинаковыми?
Сначала ответьте без подсказки. Ответ можно считать полным, если вы:
- формулируете основную мысль своими словами;
- называете важные условия, ограничения или меры безопасности;
- для схемы, кода или расчёта показываете ход решения и ожидаемый результат.
Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.
Словарь статьи
- STM32 — семейство 32-битных микроконтроллеров STMicroelectronics, а не одна модель.
- Альтернативная функция — аппаратная периферия, которую можно назначить конкретному выводу.
- Clock tree — схема распределения тактовых частот между ядром и периферией.
- SWD — двухпроводной интерфейс прошивки и аппаратной отладки.
- ST-LINK — программатор-отладчик для микроконтроллеров STM32.