Мы живём в удивительное время, когда большая часть покупаемых DIY-энтузиастами микроконтроллеров STM32 — являются или откровенными подделками, или более или менее качественными клонами малоизвестных китайских брендов (пока малоизвестных).
В этой статье мы рассмотрим программирование клонов в среде SMT32CubeIDE. Так как данная среда развивается под строгим надзором ST Microelectronics, в ней не получится ни прошить клон, ни использовать отладчик без специальной магии. Во время загрузки программы, среда проверит аутентичность микроконтроллера и выдаст ошибку. Что делать?
Самый простой способ прошить клон — использовать для этого стороннюю программу, которая не проводит проверку подозрительных клонов. Мы будем работать с STM32CubeProgrammer, но подойдёт и любое другое подобное приложение.
В данном эксперименте мы прошивали два брендовых клона: APM32F103C8T6 и GD32F103C8T6.
ШАГ 1. Формирование .hex файла
Итак, предположим, мы создали программу в среде STM32CubeIDE и хотим её загрузить на микроконтроллер. Наша программа, в своём исходом виде, разумеется, совсем не годится для загрузки на МК. Сначала потребуется собрать весь проект, скомпилировать и превратить программу в бинарный файл с расширением .hex.
Для этого необходимо открыть настройки проекта в меню: Project/Properties. Затем раскрыть пункт C/C++ Build, далее Settings, открыть пункт MCU Post build outputs и отметить там Convert to Intel Hex file
После этих манипуляций, обязательно нажать внизу кнопку Apply and Close.
Далее собираем и компилируем проект командой Build Project в меню Project. Готовый HEX файл ищем в подпапке Debug вашего проекта. Сохраняем полный путь до этого файла.
ШАГ 2. Загрузка программы
Открываем приложение STM32CubeProgrammer. В нём много разных вкладок и куча разной информации, но нам потребуется совершить всего несколько телодвижений для достижения успеха.

Подключаем к USB порту компьютера программатор ST-Link, к которому присоединён подопытный микроконтроллер. Затем нажимаем кнопку Connect — она находится слева сверху.
Сразу после этого, в правой части экрана появится информация о программаторе ST-Link: серийный номер, режим порта, частота и прочее. Там же есть кнопка Firmware Upgrade для обновления прошивки именно программатора.
Вместе с этим, в таблице появится содержимое памяти контроллера в шестнадцатеричном виде.

Если программе не удалось прочитать память — проверяем правильность подключения МК.
Затем, в левой части экрана открываем вторую сверху вкладку Erasing & Programming. Это иконка со стрелочкой. Откроется форма для загрузки .hex файла на МК.

В поле File path указываем полный путь к .hex файлу, который мы сохранили ранее. Наконец, жмём кнопку Start Programm. Готово!

А в каких случаях собирать и компилировать в bin файл?
самый крайний вариант (бесплатный и полный) MX Cube Ide
можно как BIN, так и HEX использовать
Как приучить CubeIDE к GD32, без внешних программ?
Я пользуюсь утилитой ST-LINK_CLI.exe, и самопальной программой управления, само по себе удобно, но после компиляции в IDE надо несколько лишних кликов мыши, раздражает…