STM32 для тех, кто перерос Arduino: когда он действительно нужен
STM32 — не «Arduino, только лучше». Это другой класс инструмента: мощнее и сложнее. Разбираем, какие задачи упираются в Arduino и что вас ждёт при переходе.
Содержание
Переходить с Arduino Uno на STM32 стоит, когда вы упёрлись в конкретное ограничение: скорость, память или периферию.
По даташиту ST у популярного STM32F103C8 ядро Cortex-M3 на 72 МГц, 20 КБ SRAM и 64 КБ флеш-памяти. У ATmega328P на Uno — 8-разрядное ядро, 2 КБ SRAM и 32 КБ флеш-памяти.
Логика STM32 работает на 3,3 В, и 5 В допускают только отмеченные в даташите выводы FT.
Для мигания светодиодами и чтения датчика температуры STM32 не нужен. Тогда переход принесёт только лишнюю возню с настройкой.
Ниже — цифры из даташитов, таблица сравнения, выбор платы и среды, прошивка через ST-Link и ошибки, из-за которых плата перестаёт отвечать.
Зачем это нужно

Плата Arduino Uno построена на 8-разрядном микроконтроллере ATmega328P. STM32 — семейство 32-разрядных контроллеров на ядрах Arm Cortex-M от STMicroelectronics.
Перейти на STM32 имеет смысл в четырёх случаях.
- Не хватает быстродействия.Цифровая обработка сигнала, быстрый ввод-вывод, управление двигателем в реальном времени.
- Не хватает памяти.Программы или оперативной памяти данных.
- Нужна периферия, которой нет у AVR.По даташиту STM32F103x8/xB это аппаратный USB 2.0 full-speed, интерфейс CAN, семь таймеров и 7-канальный контроллер DMA.
- Проект идёт к серийному изделию.Важны цена контроллера и его доступность.
Если ни один пункт вас не касается, оставайтесь на Arduino или возьмите ESP32, если нужен Wi-Fi.
Что говорят даташиты
Данные по STM32 взяты из даташита ST на STM32F103x8/xB (документ DocID13587, редакция 17). Данные по Uno — из даташита Microchip на ATmega328P.
| Параметр | ATmega328P (Uno) | STM32F103C8 |
|---|---|---|
| Разрядность | 8 бит | 32 бита |
| Ядро | AVR | Arm 32-bit Cortex-M3 |
| Частота | 0–20 МГц при 4,5–5,5 В; на Uno 16 МГц | 72 МГц максимум |
| Флеш-память | 32 КБ | 64 КБ |
| SRAM | 2 КБ | 20 КБ |
| Питание | 1,8–5,5 В | 2,0–3,6 В |
| Линии ввода-вывода | 23 | 37 (в корпусе C; у семейства 26/37/51/80) |
| АЦП | 10 бит | 2 × 12 бит, 1 мкс, до 16 каналов у семейства |
| Вход выше питания | максимум VCC + 0,5 В | 5 В допускают только выводы FT |
По таблице семейства у STM32F103C8 64 КБ флеш-памяти, а у STM32F103CB — 128 КБ.
Токи выводов
Для STM32F103 даташит даёт такие цифры. Любой вывод может отдавать или принимать до ±8 мА, а до ±20 мА — с ухудшенным уровнем VOL/VOH. Абсолютный максимум на вывод — 25 мА, а суммарный по линиям VDD и VSS — 150 мА.
Исключение — выводы PC13, PC14 и PC15: они рассчитаны на ±3 мА и не годятся для питания светодиода как источник тока.
Для ATmega328P абсолютный максимум — 40,0 мА на вывод.
Что отличается на практике
Помимо цифр, различаются подход к настройке и инструменты.
| Что | Arduino Uno | STM32 |
|---|---|---|
| Логика | 5 В | 3,3 В |
| Среда | Arduino IDE | Arduino IDE (ядро STM32duino), STM32CubeIDE, PlatformIO |
| Настройка | простая | сложнее: тактирование и пины |
| Прошивка | по USB встроенным загрузчиком | ST-Link по SWD или загрузчик |
Как выбрать

Плату берут под задачу, а не по частоте.
- Первое знакомство.Готовая плата (Blue Pill, Nucleo). У плат Nucleo программатор ST-Link есть на борту.
- Нужен Wi-Fi или Bluetooth.Смотрите в сторону ESP32: у STM32F103 беспроводной связи нет. Сравнение — в статье «ESP32 или Arduino Uno».
- Питание от батареи.Выбирайте линейки с низким потреблением (серии L) и проверяйте токи сна в даташите.
- Много периферии.Выбирайте контроллер по набору периферии под задачу, а не по частоте.
Если сомневаетесь, начните с готовой платы Nucleo: на ней есть программатор.
Выводы на 5 В
В даташите STM32F103 выводы с пометкой FT (five-volt tolerant) допускают 5 В. Чтобы выдержать напряжение выше VDD + 0,3 В, внутренние подтяжки на таком выводе нужно отключить.
Остальные выводы 5 В не допускают, и сигнал нужно понизить. Простой случай решает делитель, который считает калькулятор делителя напряжения.
Выход STM32 при питании 3,3 В тоже не всегда читается 5-вольтовой логикой: смотрите VIH принимающей микросхемы в её даташите.
Прошивка и ST-Link
Для прошивки STM32 через SWD нужны четыре провода: SWDIO, SWCLK, GND и 3V3.
Купите отдельный программатор ST-Link: он дешёвый и избавит от танцев с загрузчиком. У плат Nucleo он уже установлен. Без него плату, которая «замолчала» после неудачной прошивки, восстановить сложнее.
Как не потеряться при переходе

Переходите постепенно.
- Начните с Arduino IDE и ядра STM32duino.Привычные
digitalWriteиanalogReadработают, и первый результат получится быстро. - Когда понадобится большее, переходите на STM32CubeIDE или PlatformIO.Там доступны библиотеки HAL.
- Учитывайте 3,3 В с первого дня.Подавать 5 В можно только на выводы FT.
- Проверьте идентификатор чипа через ST-Link.Убедитесь, что память и модель совпадают с маркировкой.
Каждый шаг даёт проверяемый результат, поэтому ошибку легко найти.
Типовые ошибки
- 5 В на вывод без пометки FT.Контроллер выходит из строя.
- Светодиод на PC13–PC15 как на источник тока.Эти выводы рассчитаны на ±3 мА.
- Заблокированный контроллер после неудачной прошивки.Нужен ST-Link и знание способа восстановления.
- Чип не совпадает с маркировкой.Проверяйте идентификатор через ST-Link.
- Прыжок в HAL без понимания тактирования.Код компилируется, но ничего не работает.
- Выбор по частоте, а не по набору периферии.Нужной шины или таймера в чипе нет.
Короткий вывод
STM32 нужен тем, кому не хватает скорости, памяти или периферии Arduino, или кто делает изделие. Для остальных Arduino и ESP32 проще и быстрее.
Переход делайте постепенно: начните со знакомой среды, потом осваивайте HAL.
Частые вопросы
Чем STM32F103 лучше Arduino Uno?
По даташитам у STM32F103C8 ядро Cortex-M3 на 72 МГц, 20 КБ SRAM и 64 КБ флеш-памяти, а у ATmega328P — 2 КБ SRAM и 32 КБ флеш-памяти. Есть USB, CAN и 12-разрядные АЦП.
Но логика у STM32 на 3,3 В, а настройка сложнее. Для простых проектов Uno удобнее.
Можно ли подавать 5 В на вывод STM32?
Только на выводы с пометкой FT в даташите. Для остальных питание выводов 2,0–3,6 В, и 5 В их повредит.
Чтобы превысить VDD + 0,3 В на FT-выводе, внутренние подтяжки нужно отключить. Проверьте пометку для вашего вывода в таблице выводов.
Нужен ли отдельный ST-Link?
Для Blue Pill да, если не используете загрузчик. У плат Nucleo программатор есть на борту.
ST-Link продаются в российских магазинах радиодеталей; берите модель с выводами SWDIO, SWCLK, GND и 3V3.
Какой ток можно брать с вывода STM32F103?
По даташиту до ±8 мА, а до ±20 мА — с ухудшенным VOL/VOH. Абсолютный максимум — 25 мА на вывод.
Выводы PC13–PC15 рассчитаны только на ±3 мА. Мощную нагрузку подключайте через транзистор.
Где купить плату STM32 в России?
Blue Pill и платы Nucleo продаются в магазинах радиодеталей и на маркетплейсах. Проверяйте, что на плате указан STM32F103C8 или нужная вам модель.
Если плата не определяется, сначала проверьте питание, затем подключение SWD и режим загрузки.


























