GUI-утилита для прошивки STM32 и настройки Option Bytes через STM32CubeProgrammer CLI
Current version: 1.0
Программа предоставляет удобный графический интерфейс для программирования микроконтроллеров STM32 через утилиту STM32CubeProgrammer CLI. Позволяет не только прошивать flash-память, но и настраивать Option Bytes (BOR, IWDG, RDP, NRST MODE) без необходимости запоминать синтаксис командной строки.
- 🔍 Автоматическое определение семейства чипа — поддержка STM32G0, G4, F4, F1
- ⚙️ Настройка Option Bytes:
- BOR (Brown-Out Reset) — сброс при падении питания
- IWDG (Independent Watchdog) — аппаратный сторожевой таймер
- RDP (Read Protection) — защита от чтения (Level 0/1, Level 2 запрещён)
- NRST MODE — режим работы ноги сброса (G0/G4)
- 📁 Программирование flash — запись файлов .bin / .hex по адресу 0x08000000
- 🔧 Только Option Bytes — возможность записать только настройки без перезаписи flash
- 🔓 Разблокировка чипа — снятие защиты RDP Level 1 (массовое стирание)
- 📝 Предпросмотр изменений — окно подтверждения с показом параметров перед записью
- 💾 Сохранение настроек — запоминает путь к CLI, папку с прошивками и геометрию окна
- 📐 Адаптивный интерфейс — окно изменяет размер, элементы подстраиваются
- 🧾 Логирование — подробный вывод всех операций в текстовое поле
- Windows 7 / 8 / 10 / 11 (x86/x64)
- STM32CubeProgrammer (CLI-версия)
- Windows 7 / 8 / 10 / 11
- AutoHotkey v2 (установленная или портативная версия)
- STM32CubeProgrammer (CLI-версия)
💡 Примечание: .exe версия собрана для x32, но отлично работает и на x64 системах.
- Скачайте
Flasher32G0.exeиз репозитория - Запустите двойным щелчком
- При первом запуске укажите путь к
STM32_Programmer_CLI.exe
git clone https://github.com/IgerOK/Flasher32G0.git
cd Flasher32G0
.\Flasher32G0.ahk- Дважды щёлкните по
Flasher32G0.exe(илиFlasher32G0.ahk, если используете AutoHotkey) - При необходимости подтвердите запрос прав администратора (требуется для доступа к ST-LINK)
-
Если программатор не найден автоматически, поле "Путь к STM32_Programmer_CLI.exe" будет пустым
-
Нажмите кнопку Обзор... справа от поля
-
Найдите и выберите файл
STM32_Programmer_CLI.exe(обычное расположение:C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe) -
Путь сохранится автоматически и будет использоваться при следующих запусках
- Нажмите кнопку Обзор... под полем "Папка с прошивками (.bin, .hex)"
- Выберите директорию, где лежат ваши скомпилированные файлы прошивки (
.binили.hex) - После выбора папки выпадающий список "Файл для программирования" автоматически заполнится найденными файлами
💡 Совет: Если вы используете Arduino IDE с настроенным
build.path, укажите папку_build_hex_bin— в неё IDE автоматически складывает результаты компиляции.
- Подключите ST-LINK к компьютеру через USB
- Соедините ST-LINK с платой STM32 по 4 проводам (GND, SWDIO, SWCLK, 3.3V)
- Убедитесь, что плата получает питание (индикатор на плате горит)
- Нажмите кнопку ОБНОВИТЬ
- В поле статуса отобразится "СТАТУС: Чтение Option Bytes..."
- Через несколько секунд программа определит семейство чипа (G0, G4, F4, F1)
- В правой панели появятся текущие значения Option Bytes
- Нажмите кнопку ОБНОВИТЬ
- Программа определит семейство чипа и отобразит текущие настройки
- В правой панели появятся текущие значения параметров
- Выберите нужные значения в выпадающих списках и чекбоксах
- Нажмите кнопку ОПЦИИ
- Ознакомьтесь с предпросмотром изменений и подтвердите запись
- Выберите файл прошивки (.bin или .hex) из выпадающего списка
- Нажмите кнопку ПРОГРАММИРОВАТЬ ЧИП
- Дождитесь завершения процесса (статус отображается в строке состояния)
- Если чип заблокирован, нажмите кнопку РАЗБЛОКИРОВАТЬ ЧИП
- Произойдёт массовое стирание flash-памяти и сброс защиты до Level 0
- Нажмите кнопку СПРАВКА для отображения подробной информации
- Текст в окне справки можно выделять и копировать
| Семейство | BOR | IWDG | RDP | NRST | Примечание |
|---|---|---|---|---|---|
| STM32G0 | ✔️ | ✔️ | ✔️ | ✔️ | Полная поддержка |
| STM32G4 | ✔️ | ✔️ | ✔️ | ✔️ | Полная поддержка |
| STM32F4 | ✔️ | ✔️ | ✔️ | ❌ | NRST Mode недоступен |
| STM32F1 | ❌ | ❌ | ✔️ | ❌ | Только RDP |
ℹ️ При подключении чипа других семейств программа попытается прочитать Option Bytes, но некоторые опции могут быть недоступны.
Автоматически сбрасывает чип, когда напряжение питания падает ниже заданного порога. Рекомендуется включать для защиты от нестабильной работы.
| Уровень | Напряжение | Применение |
|---|---|---|
| BOR OFF | - | Сброс отключён |
| Level 0 | ~1.7V | Очень низкий порог |
| Level 1 | ~2.1V | Низкий порог |
| Level 2 | ~2.5V | Рекомендуется для G031 |
| Level 3 | ~2.8V | Высокий порог |
- Выключен (SW) — watchdog управляется программно
- Активен (HW) — аппаратный watchdog, требует периодического сброса в коде, иначе чип перезагружается
⚠️ При включении HW watchdog убедитесь, что ваша прошивка содержит команды обновления таймера!
- Level 0 — защиты нет, чтение/запись через SWD разрешены
- Level 1 — чтение/запись через SWD заблокированы, снимается массовым стиранием (кнопка РАЗБЛОКИРОВАТЬ)
- Level 2 — 🔴 НЕОБРАТИМО! Чип навсегда блокируется, программирование становится невозможным. НИКОГДА не устанавливайте!
- Input/Output (рекомендуется) — нога работает как обычный GPIO или вход сброса
- Reset Input Only — нога работает только как вход сброса
| Опция | Риск | Рекомендация |
|---|---|---|
| RDP Level 2 | 🔴 НЕОБРАТИМО! Чип навсегда превращается в "кирпич" | НИКОГДА не устанавливайте |
| IWDG (HW) | 🟡 Требует поддержки в прошивке | Убедитесь, что код обновляет watchdog |
| RDP Level 1 | 🟡 Блокирует SWD | Разблокируется массовым стиранием |
| BOR Level 3 | 🟡 Высокий порог (~2.8V) | Может вызывать ложные сбросы |
- Если вы не используете USART, можно отключить USART Support в настройках платы
- Это экономит память и освобождает пины PA9/PA10 для других целей
- Всегда нажимайте ОБНОВИТЬ, чтобы убедиться, что чип не заблокирован RDP Level 1
- Проверьте правильность подключения ST-LINK (4 провода: GND, SWDIO, SWCLK, 3.3V)
- Проверьте подключение ST-LINK к плате (4 провода)
- Убедитесь, что плата получает питание (3.3V)
- Попробуйте переподключить ST-LINK к USB
- Установите STM32CubeProgrammer с официального сайта STMicroelectronics
- Укажите путь к
STM32_Programmer_CLI.exeвручную через кнопку Обзор...
- Это не ошибка — программа просто сообщает, что параметры уже соответствуют желаемым
- Измените какой-нибудь параметр (например, BOR) для проверки записи
- Убедитесь, что скрипт запущен от имени администратора
- Закройте программу и запустите снова
- Нажмите кнопку РАЗБЛОКИРОВАТЬ ЧИП — произойдёт массовое стирание
- После разблокировки чип будет полностью стёрт (flash очищен)
MIT © 2026 IgerOK
Подробности в файле LICENSE
⭐ Если этот проект оказался полезным, поставьте звёздочку на GitHub!
