No Debug Probe Detected: почему IDE не видит отладчик и как это исправить

Ошибка No Debug Probe Detected появляется в момент запуска отладочной сессии, когда среда разработки — STM32CubeIDE, Keil MDK, IAR Embedded Workbench или Segger Embedded Studio — не может обнаружить подключённый отладчик (ST-LINK, J-Link, ULINK, CMSIS-DAP). Сообщение означает, что проблема находится на уровне связи «компьютер — отладочный зонд», а не между зондом и целевым микроконтроллером: до опроса чипа дело просто не доходит.

Разбираться с этой ошибкой нужно последовательно: от физического подключения и драйверов к настройкам проекта и конфликтам программного обеспечения. Ниже — проверяемый порядок диагностики, который подходит для большинства сред разработки и не требует рискованных действий вроде перепрошивки отладчика.

Что означает ошибка и на каком этапе она возникает

Цепочка отладки выглядит так: IDE → драйвер отладчика на ПК → сам отладочный зонд → интерфейс SWD или JTAG → целевой микроконтроллер. Сообщение No Debug Probe Detected сигнализирует о разрыве на первых двух звеньях: ПК либо вообще не видит устройство, либо IDE не может с ним связаться.

Это важное различие. Если бы отладчик определялся, но не находился чип, ошибка звучала бы иначе — например, «target not found» или «cannot connect to target». Поэтому проверять распайку SWD-линий и питание платы на этом этапе рано: сначала нужно добиться, чтобы зонд стал виден системе.

Проверка физического подключения и определения устройства в системе

Первое действие — убедиться, что операционная система вообще видит отладчик. В Windows откройте Диспетчер устройств и посмотрите, появляется ли устройство при подключении USB-кабеля и нет ли рядом с ним значка предупреждения. В Linux проверить подключение можно командой:

lsusb

Если устройство не появляется совсем, возможные причины такие:

  • 🔌 Неисправный или «зарядочный» USB-кабель без линий данных — замените его на заведомо рабочий;
  • 💻 Проблемный USB-порт или нестабильный хаб — подключите отладчик напрямую к порту компьютера;
  • 🔋 Отсутствие питания самого зонда — проверьте светодиодные индикаторы на корпусе;
  • ⚙️ Аппаратная неисправность отладчика — проверьте его на другом компьютере.
⚠️ Внимание: дешёвые USB-хабы и удлинители — частый источник проблем с отладчиками. Даже если флешка через тот же хаб работает, отладочный зонд может не определяться из-за особенностей энумерации USB. Для диагностики подключайте зонд напрямую.

Драйверы отладчика: типичный источник проблемы

Если устройство видно в системе, но IDE его не находит, следующий кандидат — драйвер. Для ST-LINK в Windows требуется фирменный драйвер STMicroelectronics, для J-Link — пакет J-Link Software от Segger, для CMSIS-DAP обычно достаточно встроенных драйверов ОС. Установите актуальную версию драйвера с официального сайта производителя и перезагрузите компьютер.

В Linux частая причина — отсутствие прав доступа к USB-устройству. Обычно производители отладчиков поставляют правила udev, которые нужно скопировать в системный каталог, после чего перезапустить службу udev или переподключить устройство. Точные имена файлов правил зависят от конкретного зонда, поэтому сверяйтесь с документацией производителя.

Конфликты ПО и занятый интерфейс

Отладчик может корректно определяться системой, но быть занятым другим процессом. Типичные захватчики — утилиты вроде STM32CubeProgrammer, J-Link Commander, второй экземпляр IDE или зависшая предыдущая отладочная сессия. Закройте все программы, способные работать с зондом, и проверьте диспетчер задач на предмет фоновых процессов отладочных утилит.

Ещё один сценарий — устаревшая прошивка самого отладчика. Некоторые IDE при подключении предлагают обновить прошивку зонда; конфликт версий иногда приводит к тому, что зонд не определяется. Обновление прошивки выполняйте только фирменной утилитой производителя и строго по его инструкции — прерванное обновление способно вывести устройство из строя.

📊 Где чаще всего оказывалась причина ошибки No Debug Probe Detected в вашем случае?
Драйверы отладчика
USB-кабель или порт
Занятый другой программой зонд
Настройки проекта в IDE

Проверка настроек проекта и конфигурации отладки

Когда железо и драйверы в порядке, проверьте конфигурацию отладки в самой IDE. В настройках debug-конфигурации должен быть выбран именно тот тип зонда, который подключён физически: если в проекте указан J-Link, а к компьютеру подключён ST-LINK, среда честно сообщит, что зонд не обнаружен.

Полезная проверка — попытаться подключиться к отладчику фирменной утилитой производителя (например, STM32CubeProgrammer для ST-LINK или J-Link Commander для J-Link). Если утилита видит зонд, а IDE — нет, проблема почти наверняка в настройках проекта или в самой среде разработки.

☑️ Проверка перед запуском отладки

Выполнено: 0 / 5

Сравнение типичных причин по средам разработки

Разные IDE по-разному реагируют на одни и те же проблемы. Сводная картина помогает быстрее локализовать источник:

Среда / зондЧастая причина ошибкиПервичная проверка
STM32CubeIDE + ST-LINKДрайвер ST-LINK не установлен или устарелДиспетчер устройств, STM32CubeProgrammer
Keil MDK + ULINK / ST-LINKНеверный отладчик выбран в опциях проектаНастройки Debug в Options for Target
Segger Embedded Studio + J-LinkЗонд занят J-Link Commander или другой сессиейЗавершить фоновые процессы Segger
Любая IDE + CMSIS-DAP«Зарядочный» USB-кабель без линий данныхЗамена кабеля на заведомо рабочий
⚠️ Внимание: не пытайтесь перепрошивать отладчик или менять его режим работы сторонними утилитами до тех пор, пока не исключены простые причины — кабель, драйвер, занятый порт. Неудачная перепрошивка клонов ST-LINK или J-Link нередко приводит к полной неработоспособности устройства.

Когда ничего не помогает: дополнительные шаги

Если все проверки пройдены, а ошибка сохраняется, попробуйте отладчик на другом компьютере. Это самый быстрый способ разделить проблему на «зонд неисправен» и «проблема в конфигурации ПК». На втором компьютере с чистой установкой драйвера рабочий зонд определяется сразу.

Также проверьте, не блокирует ли антивирус или корпоративная политика безопасности доступ к USB-устройствам — на рабочих машинах с ограничениями это встречается. Временно проверить гипотезу можно, запустив IDE с правами администратора, хотя это не решение, а лишь диагностический шаг.

Особенности клонов ST-LINK и J-Link

Недорогие клоны отладчиков могут не определяться после обновления фирменного ПО производителя — новые версии утилит иногда отказываются работать с неоригинальными устройствами. Если зонд перестал определяться сразу после обновления пакета драйверов, проверьте этот сценарий и рассмотрите откат версии ПО или использование оригинального отладчика.

Часто задаваемые вопросы

IDE видит отладчик, но не видит микроконтроллер — это та же ошибка?

Нет. Если зонд определился, а чип не находится, это уже другая категория проблем: питание целевой платы, линии SWD/JTAG, состояние вывода NRST или защита от чтения. Ошибка No Debug Probe Detected относится только к связи ПК с самим отладчиком.

Может ли быть виноват USB-кабель, если через него заряжается телефон?

Да. Часть кабелей рассчитана только на питание и не содержит линий передачи данных. Такой кабель нормально заряжает устройства, но отладчик через него не определится. Замените кабель на заведомо поддерживающий передачу данных.

После обновления IDE отладчик перестал определяться. Что делать?

Проверьте, не изменилась ли конфигурация отладки в проекте после обновления, и обновите драйвер зонда до актуальной версии с сайта производителя. Если используется клон отладчика, возможен конфликт с новой версией фирменного ПО — этот момент стоит проверить отдельно.

Нужно ли обновлять прошивку отладчика при этой ошибке?

Только если фирменная утилита производителя явно предлагает обновление и другие причины исключены. Обновление выполняйте строго по инструкции производителя: прерывание процесса может вывести зонд из строя.

Ошибка возникает только в Linux, в Windows тот же зонд работает. В чём причина?

Наиболее вероятная причина — отсутствие прав доступа к USB-устройству. Установите правила udev от производителя отладчика и переподключите устройство. Проверить, видит ли система зонд на уровне USB, можно командой lsusb.