СтатьяОпубликовано 1 апреля 2026 · обновлено 1 апреля 2026

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 и ошибки, из-за которых плата перестаёт отвечать.

Зачем это нужно

Небольшая плата STM32 и программатор на рабочем столе

Плата 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 или загрузчик

Как выбрать

Синяя плата STM32 и плата Arduino рядом на столе

Плату берут под задачу, а не по частоте.

  • Первое знакомство.Готовая плата (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 принимающей микросхемы в её даташите.

Для прошивки STM32 через SWD нужны четыре провода: SWDIO, SWCLK, GND и 3V3.

Купите отдельный программатор ST-Link: он дешёвый и избавит от танцев с загрузчиком. У плат Nucleo он уже установлен. Без него плату, которая «замолчала» после неудачной прошивки, восстановить сложнее.

Как не потеряться при переходе

USB-программатор подключён четырьмя проводами к отладочной плате

Переходите постепенно.

  1. Начните с Arduino IDE и ядра STM32duino.Привычные digitalWrite и analogRead работают, и первый результат получится быстро.
  2. Когда понадобится большее, переходите на STM32CubeIDE или PlatformIO.Там доступны библиотеки HAL.
  3. Учитывайте 3,3 В с первого дня.Подавать 5 В можно только на выводы FT.
  4. Проверьте идентификатор чипа через 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 и режим загрузки.

Полезно при расчёте

Тегиstm32arduino
Редакция СхемОкАвторМатериалы готовит редакция сайта, формулы и номиналы сверяются с даташитами производителей, расчёты — с калькуляторами сайта.99 материалов

Похожие материалы