Если программа для ST-Link V2 выдаёт ошибку «No ST-Link detected» или «Can not connect to target», первым делом проверьте, установлен ли драйвер ST-LINK USB driver и не занят ли программатор другой утилитой — одновременно два приложения работать с отладчиком не могут. Эта пара причин отвечает за большинство обращений новичков, купивших китайский клон ST-Link V2 для прошивки STM32.
Сам программатор ST-Link V2 — это лишь «мост» между USB-портом компьютера и отладочным интерфейсом SWD микроконтроллера. Без программного обеспечения он бесполезен, поэтому выбор и настройка утилиты — ключевой этап. Ниже разберём, какие программы подходят, как их установить и что делать при типичных сбоях.
Какие программы работают с ST-Link V2
Официально STMicroelectronics поддерживает два основных инструмента для работы с отладчиком. Первый — STM32 ST-LINK Utility, классическая утилита с простым интерфейсом: подключение, чтение, стирание и запись прошивки. Она давно не обновляется и считается устаревшей, но до сих пор популярна благодаря простоте.
Второй вариант — STM32CubeProgrammer, актуальная официальная программа, пришедшая на смену ST-LINK Utility. Она поддерживает больше интерфейсов (SWD, JTAG, UART, USB DFU), умеет работать с Option Bytes и регулярно обновляется. Для новых проектов стоит выбирать именно её.
- 🔧 STM32CubeProgrammer — актуальный официальный инструмент от ST;
- 🧰 STM32 ST-LINK Utility — устаревшая, но простая классика;
- ⚙️ OpenOCD — открытый вариант для связки с GDB и отладки;
- 🖥️ Keil uVision / STM32CubeIDE — среды разработки со встроенной прошивкой через ST-Link;
- 📦 Arduino IDE (с ядром STM32) — прошивка плат напрямую через ST-Link.
Для большинства задач достаточно одной программы — STM32CubeProgrammer. Она бесплатна, официально поддерживается и закрывает прошивку, чтение и настройку Option Bytes.
Установка драйвера ST-Link V2
Без драйвера Windows определит программатор как неизвестное устройство, и ни одна утилита его не увидит. Драйвер ST-LINK USB driver распространяется отдельным пакетом на сайте STMicroelectronics, а также устанавливается автоматически вместе с STM32CubeProgrammer или ST-LINK Utility. Скачивайте его только с официального сайта ST — сторонние «драйверпаки» могут подставить несовместимую версию.
Порядок проверки простой. Подключите ST-Link V2 к USB-порту, откройте Диспетчер устройств и найдите устройство в разделе Universal Serial Bus devices — корректно установленный программатор отображается как STM32 STLink или аналогичная строка без восклицательного знака. Если устройство определилось с ошибкой, удалите его вместе с драйвером и установите пакет заново.
⚠️ Внимание: дешёвые клоны ST-Link V2 в металлическом корпусе иногда содержат устаревшую версию внутренней прошивки. Официальные утилиты могут отказаться работать, пока вы не обновите firmware программатора через встроенную функцию обновления — делайте это только при стабильном USB-подключении.
Подключение программатора к плате STM32
Для прошивки по SWD достаточно четырёх линий: SWDIO, SWCLK, GND и питание 3.3V (либо линия TVCC для определения напряжения цели — зависит от версии клона). Распиновка разъёма у клонов различается, поэтому сверяйтесь с маркировкой на корпусе конкретного устройства, а не с картинками из интернета.
Типичная ошибка — перепутанные местами SWDIO и SWCLK. Программа при этом выдаёт «Can not connect to target», хотя сам программатор определяется нормально. Вторая частая причина — отсутствие общего GND между программатором и целевой платой.
☑️ Проверка перед прошивкой
Прошивка через STM32 ST-LINK Utility
Несмотря на возраст, ST-LINK Utility остаётся самым быстрым способом залить готовый HEX-файл. Последовательность действий выглядит так: запустите программу, нажмите Target → Connect, затем откройте файл прошивки через File → Open file и выполните запись командой Target → Program & Verify. При успехе в логе появится подтверждение верификации.
Полезно знать про функцию Target → Erase Chip — полное стирание помогает, когда контроллер «залочен» защитой чтения RDP или предыдущая прошивка мешает подключению. Учтите: снятие защиты чтения через Option Bytes неизбежно стирает всю память микроконтроллера.
Если плата не отвечает на подключение, попробуйте режим «Connect Under Reset» (в ST-LINK Utility — в настройках Settings, в CubeProgrammer — выбор режима в поле Mode). Он помогает, когда прошивка в чипе отключает пины SWD сразу после старта.
Прошивка через STM32CubeProgrammer
В STM32CubeProgrammer процесс устроен схоже, но интерфейс современнее. В правой части окна выберите тип подключения ST-LINK, при необходимости задайте режим Under Reset и нажмите Connect. Далее перейдите на вкладку Erasing & Programming, укажите путь к файлу прошивки (.hex, .bin или .elf), отметьте опцию верификации и запустите запись кнопкой Start Programming.
Отдельное достоинство программы — вкладка OB (Option Bytes), где настраиваются защита чтения, области записи и поведение загрузки. Меняйте эти параметры только если понимаете их назначение: неверная комбинация Option Bytes способна заблокировать чип до полного стирания, а в отдельных случаях усложнить восстановление.
| Программа | Статус | Основное назначение | Кому подходит |
|---|---|---|---|
| STM32CubeProgrammer | Актуальная | Прошивка, Option Bytes, стирание | Всем пользователям |
| STM32 ST-LINK Utility | Устаревшая | Быстрая запись HEX-файлов | Тем, кто привык к классике |
| STM32CubeIDE | Актуальная | Разработка, отладка, прошивка | Разработчикам |
| OpenOCD | Активно развивается | Отладка через GDB, автоматизация | Продвинутым пользователям |
| Arduino IDE (ядро STM32) | Актуальная | Прошивка скетчей | Любителям Arduino |
Типичные ошибки и их решение
Ошибка «No ST-Link detected» означает, что программа не видит сам программатор: проверьте драйвер, USB-кабель (некоторые кабели — «только зарядка», без линий данных) и закройте другие утилиты, которые могли захватить устройство. Помогает и переподключение в другой USB-порт, желательно напрямую, без хаба.
Сообщение «Can not connect to target» говорит уже о проблеме между программатором и чипом. Возможные причины: перепутаны SWDIO/SWCLK, нет общего GND, плата не запитана, либо прошивка в контроллере переназначила отладочные пины. В последнем случае спасает режим Connect Under Reset или удержание кнопки сброса на плате в момент подключения.
⚠️ Внимание: не подавайте на целевую плату питание одновременно от ST-Link и от внешнего источника без проверки схемы — встречное питание может вывести из строя стабилизатор платы или сам программатор. Выберите один источник.
Что делать, если клон ST-Link V2 «умер» после обновления прошивки
Некоторые китайские клоны перестают определяться после попытки обновить firmware официальной утилитой. Восстановление обычно возможно перепрошивкой самого клона через UART-загрузчик STM32 внутри него с использованием образа прошивки ST-Link, который распространяется в сообществе. Процедура требует разборки корпуса и пайки проводов к пинам BOOT0 и UART — выполняйте её только при наличии опыта.
Обновление прошивки самого ST-Link
Обе официальные программы умеют обновлять внутреннюю прошивку отладчика. В CubeProgrammer при подключении нажмите кнопку Firmware upgrade, в ST-LINK Utility используйте пункт меню ST-LINK → Firmware update. Обновление устраняет проблемы совместимости с новыми версиями ПО и добавляет поддержку свежих микроконтроллеров.
Перед обновлением убедитесь, что USB-подключение стабильно: обрыв связи в середине процесса может перевести программатор в нерабочее состояние. Оригинальные отладчики ST обновляются штатно, а вот клоны — только на свой риск: часть из них после обновления перестаёт определяться официальными утилитами.
Диагностика проблем со ST-Link V2 идёт по цепочке: драйвер и USB → сам программатор → провода SWD → питание целевой платы → состояние прошивки в чипе. Проверяйте звенья по порядку, не перескакивая.
Часто задаваемые вопросы
Какая программа лучше для ST-Link V2 — ST-LINK Utility или CubeProgrammer?
Для новых проектов рекомендуется STM32CubeProgrammer: она поддерживается STMicroelectronics и получает обновления. ST-LINK Utility подойдёт, если нужно быстро записать готовый HEX-файл и вы привыкли к её интерфейсу.
Почему Windows не видит ST-Link V2?
Чаще всего не установлен драйвер ST-LINK USB driver или используется USB-кабель без линий данных. Проверьте устройство в Диспетчере устройств и попробуйте другой кабель и порт.
Можно ли прошивать через ST-Link не только STM32, но и STM8?
Да, отладчики семейства ST-Link поддерживают и микроконтроллеры STM8 через интерфейс SWIM — для этого используется отдельная утилита ST Visual Programmer или среда разработки с поддержкой STM8. У клонов V2 поддержка SWIM бывает урезана, сверяйтесь с описанием конкретного устройства.
Что означает ошибка «Can not connect to target»?
Программатор исправен, но не может связаться с микроконтроллером. Проверьте правильность подключения SWDIO/SWCLK, наличие общего GND, питание платы и попробуйте режим Connect Under Reset.
Опасно ли обновлять прошивку китайского клона ST-Link V2?
Да, есть риск: часть клонов после обновления официальной утилитой перестаёт определяться. Если клон стабильно работает с нужной вам программой, обновлять его прошивку без необходимости не стоит.