Создание проекта на STM32 с помощью CubeIDE шаг за шагом.
Выбор среды разработки
При выборе IDE для проекта под микроконтроллеры STM есть множество вариантов, но обычно выбирают между STM32CubeIDE и Keil MDK-ARM, так как они являются наиболее удобными инструментами для разработки. Давайте кратко разберемся почему мы будем использовать STM32CubeIDE и в чём его преимущество.
- Бесплатность. В отличие от Keil, где бесплатная версия ограничена 32 КБ кода (чего часто недостаточно для серьезных проектов), STM32CubeIDE не накладывает никаких ограничений
- Кроссплатформенность. TM32CubeIDE работает на Windows, Linux и macOS, что делает его универсальным решением для разработчиков с разными предпочтениями. В то же время Keil поддерживает только Windows. Согласитесь это не всегда удобно.Я например работаю под ubuntu и нужно много усилий чтобы запустить Keil в моей системе..
- Графический интерфейс для настройки проекта. Очень удобная штука, поверьте.Позволяет быстро настроить периферию, часы и пины, сгенерировать код и сразу приступить к разработке. Сильно экономит время и нервы.
Создание первого проекта
Почему разобрались, теперь давайте скачаем и создадим первый проект. Скачать можно тут. https://www.st.com/en/development-tools/stm32cubeide.html
Скроллим вниз, там есть выбор версии и вашей системы.
Итак, чтобы создать новый проект кликаем File->New->STM32 Project
Появляется вот такое окошко. Справа внизу ( помечено синей стрелкой ) список всех микроконтроллеров. Слева можно искать по параметрам. Мы пока этим заниматься не будем, а просто найдём свой.
Я например буду использовать макетную плату Discovery Discovery с STM32F407VGT6
на ней. Когда нашли нужный вам микроконтроллер не спешите нажимать кнопку далее. Слева от названия есть звёздочка. Кликните на неё, это добавит ваш микроконтроллер в избранное и в следующий раз вам не придется искать его снова.
В следующий раз чтобы не искать просто нажмите звёздочку в левой колонке.
Нажимаем зеленую кнопку Next и появляется окно настроек проекта. Выглядит оно так.
Тут всё оставляем как есть. Кликаем Finish. Создался наш первый проект. Выглядит он так.
Настройка проекта и генерация кода
Выбран файл ioc. В нём находятся базовые настройки проекта такие как настройки тактирования, инициализация периферии, прерывания и т.д. Поставим базовые настройки частоты. Во вкладке System Core ->RCC->High Speed Clock->Crystal/Ceramic Resonator. На нашей плате STM32F4 Discovery два кварцевых резонатора. Один на 8МГЦ (HSE) и на 32.768 кГц. HSE(High-Speed External) важен для работы ядра и большинства периферийных устройств. Выберем тактирование от 8МГц, выставив HSE В Crystal/Ceramic Resonator.
Далее включим последовательную отладку. Вкладка SYS -> Debug ->Serial WIre. Это пригодится нам позже при отладке программы. Этого достаточно для первой программы. Все настройки частот можно посмотреть в окошке Clock Configuration. Его мы рассмотрим в одной из следующих статей. Теперь жмём на кнопку генерации кода слева вверху.
Заходим в наш файл main. Он лежит в папке Core->Src->main.c Видим сгенерированный код нашего проекта. Саму структуру кода рассмотрим в следующей статье. Здесь очень важный момент. IDE не только сгенерировало код но и пометило места где вы можете писать свой собственный. Они начинаются с USER CODE BEGIN и заканчиваются USER CODE END. Так вот, если вы напишите что-либо вне этих мест то при следующей генерации ваш код сотрется и просто пропадет, учитывайте это. например если хотим что-либо написать в бесконечном цикле while то необходимо это делать в блоке
Иначе вы рискуете его потерять.
Промежуточный итог
Мы прошли по базовым настройкам создания проекта в CubeIde. Давайте получим быстрый результат и как обычно помигаем светодиодом, который есть на нашей плате. А сделаем мы это в одно из следующих статей.
Спасибо за внимание и удачи в ваших проектах!