Ошибка No target connected при попытке прошить STM32 через ST-Link почти всегда означает одно из трёх: не подключён или перепутан сигнал SWDIO/SWCLK, отсутствует питание целевой платы, либо микроконтроллер удерживается в сбросе или защищён от чтения. Прежде чем менять программатор или «перепрошивать» сам отладчик, проверьте именно эти три пункта — они закрывают подавляющее большинство проблем с подключением.

Программатор ST-Link (фирменный ST-LINK/V2, клоны на алюминиевом корпусе или встроенный в отладочные платы Nucleo и Discovery) работает с микроконтроллерами STM32 по двум интерфейсам: SWD (основной, два сигнальных провода) и JTAG (больше линий, используется реже). В этой статье разберём подключение, выбор программы для прошивки, пошаговый процесс записи firmware и диагностику типичных сбоев.

Подключение ST-Link к плате STM32

Для прошивки по SWD достаточно четырёх линий: SWDIO, SWCLK, GND и питание. На большинстве плат STM32 выводы SWD подписаны и вынесены на гребёнку; на «голых» микроконтроллерах их расположение зависит от корпуса — сверяйтесь с datasheet конкретного чипа, а не с чужими схемами.

  • 🔌 GND — соедините земли программатора и целевой платы первым делом; без общей земли связь невозможна.
  • 📡 SWDIO — линия данных, соединяется с соответствующим выводом МК (на многих STM32 это PA13).
  • ⏱️ SWCLK — линия тактирования (часто PA14).
  • 🔋 3.3V / VCC — питание целевой платы, если она не запитана отдельно.
  • 🔄 NRST — опционально, нужен для режима Connect Under Reset при проблемных чипах.

⚠️ Внимание: многие клоны ST-Link на пин 3.3V выводят напряжение со своего стабилизатора, а пин 5V соединён напрямую с USB. Не подавайте 5 В на питание платы, рассчитанной на 3.3 В, и не запитывайте плату одновременно от ST-Link и от внешнего источника — возможен конфликт источников питания.

Длина проводов SWD тоже имеет значение: при длинных или неэкранированных шлейфах связь может быть нестабильной. Если прошивка обрывается на середине, сократите провода до 10–15 см и снизьте скорость SWD в настройках программы.

Выбор программы для прошивки

Существует несколько рабочих инструментов, и выбор зависит от задачи. STM32CubeProgrammer — актуальная официальная утилита STMicroelectronics с графическим интерфейсом и консольным режимом; именно её стоит ставить в первую очередь. Старенькая ST-Link Utility больше не развивается, но до сих пор встречается в старых инструкциях и работает на простых задачах.

ПрограммаТипКогда использовать
STM32CubeProgrammerGUI + CLIОсновной современный вариант, поддержка всех серий STM32
ST-Link UtilityGUIУстаревшая, подходит для простых задач на старых ПК
OpenOCDКонсольАвтоматизация, CI, интеграция с Eclipse/VS Code
STM32CubeIDEIDEПрошивка прямо из среды разработки вместе с отладкой

Для разовой прошивки готового файла .hex или .bin проще всего использовать CubeProgrammer. Если вы разрабатываете проект в STM32CubeIDE, прошивка выполняется кнопкой Run/Debug без сторонних утилит — среда сама вызывает программатор.

📊 Какой программой вы прошиваете STM32?