STM32CubeIDE Первый проект

Опубликовано stm32 - Птн, 02/02/2024 - 14:54

Всем привет!

И так сегодня я решил добавить статью по  STM32CubeIDE.  В последнее время очень часто получаю на почту вопросы связанные с этой средой разработки программ для микроконтроллеров. Причем вопросы одинакового характера и связаны с тем - как установить, как запустить, как создать проект, как отладить код? Поэтому в этой статье постараюсь показать самое начало - от установки до моргания светодиодом. В конце видео в котором показывается процесс создания проекта.

STM32CubeIDE - что это ?

Это то, чем мы будем управлять нашим микроконтроллером!

Задача следующая:

1. Есть плата и программатор (подключаем программатор к плате - не буду описывать как - можно посмотреть на просторах интернета) и подключаем сборку к компьютеру.

0224_1_1099

     2.      Установить STM32CubeIDE 

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

     4.       Написать программу моргания светодиодом

     5.       Записать в микроконтроллер

     6.      Увидеть моргание светодиода

И все это только с помощью STM32CubeIDE !

Все делаем в WINDOWS 10 (все обновления от января 2024)

Итак приступим ....

STM32CubeIDE быстро развивается. Текущая версия на  сегодня (начало 2024 года)  - 1.14.1. (для win)

0224_0

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

0224_1_0

Как скачать

1. Регистрация на сайте st.com

2.  Ваш IP должно быть не из РФ.

Регистрируемся.

Входим на сайт - убеждаемся в этом.

0224_1_6

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

 

0224_1_77

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

0224_1_99

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

 

0224_1_10

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

0224_1_155

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

0224_1_166

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

0224_1_177

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

0224_1_266

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

0224_1_277

 

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

0224_1_288

Именно наш

0224_1_299

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

0224_1_300

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

0224_1_320

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

0224_1_330

0224_1_340

0224_1_350

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

0224_1_360

Нажимаем финиш.

Появляется окно - Соглашаемся

0224_1_37

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

0224_1_38

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

 

0224_1_39

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

0224_1_40

 

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

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

0224_1_41

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

1_1_42

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

0224_1_43

Делается просто: 

1. Убеждаемся, что кварц номиналом как на плате

2. В PLL ставим точку как по стрелке

3. Где HCLK - ставим частоту на которой будет работать наш микроконтроллер прям цифрами пишем 48 МГц  и нажимаем ввод - программа сами рассчитает все необходимое!!!! 

Переходим дальше и настраиваем порт для светодиода как выход!

0224_1_44

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

0224_1_45

0224_1_46

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

Важные параметры указал стрелками.

 

0224_1_47

GPIO output level - зависит от того как подключен светодиод на плате.

В нашем случае это не имеет значения.

Максимальная скорость порта ..

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

0224_1_48

 

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

В основном окне выбираем сохранить и выйдет окно с предложением сгенерировать код!

0224_1_62

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

0224_1_63

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

0224_1_50

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

 

0224_1_51

Но как нам заставить port микроконтроллера изменять свое состояние? 

Нам нужна команда которая нам изменит состояние порта к которому подключен наш светодиод.  

Т.е. включить светодиод - подождать - выключить светодиод

Как пример -  с помощью библиотек которые мы скачали !  Раз они есть - то есть и команды управления портами!

Для работы с портами микроконтроллера существуют следующие файлы :

stm32f0xx_hal_gpio.h

stm32f0xx_hal_gpio.с

Ищем файл stm32f0xx_hal_gpio.h и открываем его (два раза левой клавишей).

0224_1_54  

Ищем файл stm32f0xx_hal_gpio.с и открываем его (два раза левой клавишей).

0224_1_52

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

Команд все 5 для нашего F0 

 

0224_1_56

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

0224_1_57

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

0224_1_58

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

0224_1_59

Переходим к выполнению первоначальной задачи !

Копируем название и переносим к себе в main.c

0224_1_60

 

0224_1_61

Скопировал выше того места куда должен скопировать.

Обычно копирую прототип два раза - один правлю на другой смотрю! 

И начинаем править заменяя прототипы своими данными.

Но просто управлять портом - это хорошо, но это переключение  не увидеть глазом  в каждом цикле программы ...

Нужна пауза перед изменением порта - тогда изменение работы светодиода будет - заметно.

Для этого есть стандартная функция задержки - Delay();

Добавим ее в программу и получим 

0224_1_64

Следует обратить внимание что все свои команды следует писать в том месте программы, где указано USER CODE BEGIN ....

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

Итак программа написана - идем дальше проверяем ее на ошибки - жмем на молоток!!!!

0224_1_65

 

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

0224_1_66

Ура! 

Ошибок нет - осталось только записать в микроконтроллер и посмотреть как моргает светодиод!

Идем в настройки - зеленый круг и белая стрелка 

 0224_1_67

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

0224_1_68

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

0224_1_69

0224_1_70

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

И дальше по стрелкам  

0224_1_71

Как только нажали Apply 

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

0224_1_72

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

Ну, а в окне консоли видим результат.

0224_1_73

1. Определился программатор и микроконтроллер

2. Стерлась память микроконтроллера.

3. Файл зашился в микроконтроллер.

4. Проверка 

И все.. светодиод должен включаться и выключаться с интервалом 500 ms!!!

  Эта статья пригодиться тому, кто совершает первые шаги в освоении программ для программирования микроконтроллеров, и не сомненно, позволит начать двигаться дальше !!! Если остались вопросы или возникли новые - пишите  на stm32@stm32res.ru постараемся ответить!

Если эта статья помогла сдвинуться с места на столько, что готовы поощрить - мы только рады - пишите на почту вышлем координаты ! 

 

Video
Яндекс.Метрика