Всем привет!
И так сегодня я решил добавить статью по STM32CubeIDE. В последнее время очень часто получаю на почту вопросы связанные с этой средой разработки программ для микроконтроллеров. Причем вопросы одинакового характера и связаны с тем - как установить, как запустить, как создать проект, как отладить код? Поэтому в этой статье постараюсь показать самое начало - от установки до моргания светодиодом. В конце видео в котором показывается процесс создания проекта.
STM32CubeIDE - что это ?
Это то, чем мы будем управлять нашим микроконтроллером!
Задача следующая:
1. Есть плата и программатор (подключаем программатор к плате - не буду описывать как - можно посмотреть на просторах интернета) и подключаем сборку к компьютеру.

2. Установить STM32CubeIDE
3. Произвести первоначальную настройку микроконтроллера
4. Написать программу моргания светодиодом
5. Записать в микроконтроллер
6. Увидеть моргание светодиода
И все это только с помощью STM32CubeIDE !
Все делаем в WINDOWS 10 (все обновления от января 2024)
Итак приступим ....
STM32CubeIDE быстро развивается. Текущая версия на сегодня (начало 2024 года) - 1.14.1. (для win)

Версии для большинства операционных систем

Как скачать
1. Регистрация на сайте st.com
2. Ваш IP должно быть не из РФ.
Регистрируемся.
Входим на сайт - убеждаемся в этом.

Идем на страницу загрузки STM32CubeIDE и скачиваем версию для WINDOWS

Устанавливаем

Программы от ST не любят кириллицу совсем поэтому меняем и названия и пути !!!!!!!!

После установки и первом запуске я рекомендую этот путь

Заменить на этот

Запускаем и видим рабочее пространство и логинимся как на сайте ST

Начинаем создавать проект

После загрузки и обновления списка микроконтроллеров и плат появляется окно выбора микроконтроллера

Выбираем микроконтроллер как на плате

Именно наш

Выходит окно создания проект

Вводим название

Далее РЕКОМЕНДУЮ ИЗМЕНИТЬ ПУТИ ХРАНЕНИЯ БИБЛИОТЕК!



Все сохраняем

Нажимаем финиш.
Появляется окно - Соглашаемся

Запускается генератор начального кода

Далее программа увидит отсутствие необходимых библиотек и начнет их скачивать т.к. мы выбрали микроконтроллер в первый раз.

Если все нормально - выйдет начальная страница с нашим выбранным микроконтроллером и соответственно сгенерируется проект слева с выбранным нами названием!!!

Приступим к назначению портов и тактирование микроконтроллера.
В первую очередь назначаем механизм отладки микроконтроллера

Продолжаем и определяем, что будем работать с внешним кварцем! Обращаем внимание в каком мы окне по стрелкам!

Следующим шагом назначаем частоту работы микроконтроллера

Делается просто:
1. Убеждаемся, что кварц номиналом как на плате
2. В PLL ставим точку как по стрелке
3. Где HCLK - ставим частоту на которой будет работать наш микроконтроллер прям цифрами пишем 48 МГц и нажимаем ввод - программа сами рассчитает все необходимое!!!!
Переходим дальше и настраиваем порт для светодиода как выход!

Называем порт для удобного понимания


Назначили и переходим к параметрам выбранного порта
Важные параметры указал стрелками.

GPIO output level - зависит от того как подключен светодиод на плате.
В нашем случае это не имеет значения.
Максимальная скорость порта ..
Я обычно всегда этот параметр устанавливаю в High (когда нет контроля за потреблением и когда светодиод передает сигналы связи) в нашем не имеет значение но переключу на максимальный!

На этом процесс настройки с помощью графического конфигуратора окончена и следующим шагом необходимо сгенерировать начальный код
В основном окне выбираем сохранить и выйдет окно с предложением сгенерировать код!

Жмем да и процесс начинается

По окончанию выбираем и открываем main.c и конечно соглашаемся !

Двигаемся по main.c до места где будем писать работу светодиода

Но как нам заставить port микроконтроллера изменять свое состояние?
Нам нужна команда которая нам изменит состояние порта к которому подключен наш светодиод.
Т.е. включить светодиод - подождать - выключить светодиод
Как пример - с помощью библиотек которые мы скачали ! Раз они есть - то есть и команды управления портами!
Для работы с портами микроконтроллера существуют следующие файлы :
stm32f0xx_hal_gpio.h
stm32f0xx_hal_gpio.с
Ищем файл stm32f0xx_hal_gpio.h и открываем его (два раза левой клавишей).
Ищем файл stm32f0xx_hal_gpio.с и открываем его (два раза левой клавишей).

Переходим во вкладку stm32f0xx_hal_gpio.h и перемещаемся в самый низ и видим то, что можно сделать с портом
Команд все 5 для нашего F0

Выберем самую простую - 3 - TogglePin - эта команда будет изменять состояние порта и менять его на противоположное!

Выбираем и жмем правую клавишу мыши - мы можем посмотреть как эта команда работает

Жмем F3 и переходим в ранее открытый stm32f0xx_hal_gpio.с

Переходим к выполнению первоначальной задачи !
Копируем название и переносим к себе в main.c


Скопировал выше того места куда должен скопировать.
Обычно копирую прототип два раза - один правлю на другой смотрю!
И начинаем править заменяя прототипы своими данными.
Но просто управлять портом - это хорошо, но это переключение не увидеть глазом в каждом цикле программы ...
Нужна пауза перед изменением порта - тогда изменение работы светодиода будет - заметно.
Для этого есть стандартная функция задержки - Delay();
Добавим ее в программу и получим

Следует обратить внимание что все свои команды следует писать в том месте программы, где указано USER CODE BEGIN ....
Почему это сделано - потому, что если еще раз вызвать конфигуратор начального кода и изменить конфигурацию (добавить еще один порт например забыли, новая задача и т.п.) то все записи внесенные вне рамки USER CODE BEGIN .... USER CODE END будут затерты!!!!!!!
Итак программа написана - идем дальше проверяем ее на ошибки - жмем на молоток!!!!

Если все делали правильно, то получим в консоли результат проверки программы

Ура!
Ошибок нет - осталось только записать в микроконтроллер и посмотреть как моргает светодиод!
Идем в настройки - зеленый круг и белая стрелка

И настраиваем

В окне выбираем


Устанавливаем во вкладках. Для вкладки ST_LINK (он еще подключен у нас! ) - жмем Scan
И дальше по стрелкам

Как только нажали Apply
Должно появиться окно Защитника WINDOWS - разрешаем доступ

Как только доступ получен - пошла прошивка.
Ну, а в окне консоли видим результат.

1. Определился программатор и микроконтроллер
2. Стерлась память микроконтроллера.
3. Файл зашился в микроконтроллер.
4. Проверка
И все.. светодиод должен включаться и выключаться с интервалом 500 ms!!!
Эта статья пригодиться тому, кто совершает первые шаги в освоении программ для программирования микроконтроллеров, и не сомненно, позволит начать двигаться дальше !!! Если остались вопросы или возникли новые - пишите на stm32@stm32res.ru постараемся ответить!
Если эта статья помогла сдвинуться с места на столько, что готовы поощрить - мы только рады - пишите на почту вышлем координаты !