Ошибка 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 больше не развивается, но до сих пор встречается в старых инструкциях и работает на простых задачах.
| Программа | Тип | Когда использовать |
|---|---|---|
| STM32CubeProgrammer | GUI + CLI | Основной современный вариант, поддержка всех серий STM32 |
| ST-Link Utility | GUI | Устаревшая, подходит для простых задач на старых ПК |
| OpenOCD | Консоль | Автоматизация, CI, интеграция с Eclipse/VS Code |
| STM32CubeIDE | IDE | Прошивка прямо из среды разработки вместе с отладкой |
Для разовой прошивки готового файла .hex или .bin проще всего использовать CubeProgrammer. Если вы разрабатываете проект в STM32CubeIDE, прошивка выполняется кнопкой Run/Debug без сторонних утилит — среда сама вызывает программатор.
📊 Какой программой вы прошиваете STM32?