Фильтр по тематике

Современные 32-разрядные ARM-микроконтроллеры серии STM32: графический генератор кода STM32CubeMX

В статье приведено описание программного инструмента STM32CubeMX визуальной графической подготовки и генерации программного кода на языке Си для 32-разрядных ARM-микроконтроллеров серии STM32 от компании STMicroelectronics.

25.12.2015 1055 0
Современные 32-разрядные ARM-микроконтроллеры серии STM32: графический генератор кода STM32CubeMX

Введение

В настоящее время семейство микроконтроллеров STM32 включает в себя достаточно большой набор вариантов ядер: Cortex-M0, Cortex-M0+, Cortex-M3, Cortex-M4. При таком разнообразии микроконтроллеров встаёт вопрос о наличии инструмента для настройки частот тактирования, инициализации периферии микроконтроллеров и генерации кода для них.

Описание генератора кода

С целью облегчения труда программистов и ускорения разработки программ для микроконтроллеров семейства STM32 компания STMicroelectronics [1] создала специальное программное обеспечение под названием STM32CubeMX. Основная идея программного обеспечения STM32CubeMX как раз и заключается в предоставлении универсального инструмента для настройки и создания кода инициализации для микроконтроллеров STM32. Данный продукт позволяет осуществить:

  • назначение выводов с автоматическим разрешением конфликтов;
  • построение дерева тактирования с динамической проверкой конфигурации;
  • инициализацию периферии с проверкой параметров на корректность;
  • инициализацию питания с оценкой результирующего потребления.

Программный инструмент STM32CubeMX постоянно модернизируется. Его возможности расширяются путём обеспечения поддержки всё большего количества моделей микроконтроллеров. Данный программный инструмент и обновления для него всегда можно загрузить с официального сайта STMicroelectronics [1].

STM32CubeMX является частью программной платформы STM32Cube™, которая разработана для облегчения труда разработчика и сокращения времени написания программ для микроконтроллеров семейства STM32. Платформа STM32Cube™ включает в себя десятки примеров базовых программ, поддерживает библиотеки USB, Ethernet, FreeRTOS, FatFS и функцию расчёта энергопотребления микроконтроллеров с батарейным питанием.

С помощью данной платформы пользователь может генерировать проекты для сред разработки IAR Embedded Workbench, Keil uVision и Atollic TrueStudio. Также планируется поддержка GCC и других компиляторов.

Рассмотрим на конкретном примере, как можно применять данный инструмент на практике. На момент написания статьи генератор кода STM32CubeMX имел версию 4.4.0, для которой и приведено описание.

Первым делом необходимо скачать установочный файл генератора кода STM32CubeMX с официального сайта [1] и установить его на персональном компьютере с операционной системой Windows XP (или более новой) путём простого запуска установочного файла.

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

Версию установленной программы можно посмотреть в меню «Help» с помощью программной кнопки «About» или одновременным нажатием кнопок «Alt» и «A».

С помощью меню «Help» можно также получить справку о программе, нажав клавишу «F1», проверить обновления программы, установить новые библиотеки и настроить процедуру об­новления.

Рассмотрим процедуру генерации нового проекта. Для этого необходимо в меню «File» выбрать «New project…». Через несколько секунд после этого откроется окно (см. рис. 1). Здесь необходимо выбрать серию, тип микроконт­роллера и его корпус (в закладке «MPU Selector») с помощью элементов выбора «Series», «Lines» и «Package» группы «MCU Filters». При необходимости здесь же можно задать минимальное количество выводов «IO» и размер памяти «Flash», «Ram» и «Eeprom» микроконт­роллера.

С помощью закладки «Board Selector», представленной на рисунке 2, можно выбрать используемую в будущем проекте отладочную плату. Например, «Discovery», «Nucleo» или «EvalBoard».

После выбора типа микроконтроллера и нажатия кнопки «Ok», программа STM32CubeMX откроет новое окно, в котором будут приведены все периферийные устройства микроконтроллера и аппаратные блоки в свёрнутом виде. Разворачивая списочный состав этих устройств, нужно отметить галочкой те устройства, которые необходимы в будущем проекте, как это показано на рисунке 3.

Здесь же можно настроить некоторые свойства периферии и порты ввода–вывода. При этом задействованные выводы периферийных устройств на изображении микроконтроллера в центре окна будут автоматически изменять свой цвет на зелёный. Первоначально незадействованные выводы являются неактивными и имеют серый цвет. Выводы питания по умолчанию окрашены в жёлтый цвет.

Нажатие закладки «Clock Configura­tion» откроет окно с архитектурой для настройки частот внутренней синхронизации микроконтроллера (см. рис. 4). В этом окне можно выбирать источники синхронизации и задавать различные коэффициенты деления частот.

В очередной закладке «Configura­tion», изображённой на рисунке 5, можно настроить выбранные ранее и отображённые в графической форме функциональные блоки ADC, DMA, GPIO, NVIC, RCC и другие.

Здесь же можно настроить функционирование периферии. Например, запустить АЦП по переполнению таймера или задать прерывания и связи контроллера прямого доступа к памяти. После выбора на этой закладке контроллера DMA1 или DMA2 программа STM32CubeMX, с учётом выбранной ранее периферии, предложит назначить источник запроса на копирование. Тут же можно указать и другие параметры копирования: циклическое или нормальное, направление копирования, требование инкремента адреса источника и приёмника и так далее.

В этой же закладке простым щелчком мыши можно настроить прерывания, открыв соответствующее окно, показанное на рисунке 6.

Список прерываний также согласован с выбранной ранее периферией. В этом окне можно задать уровень вложенности прерываний и, в соответствии с этим, присвоить разрешённому прерыванию группу и подгруппу. Подобным образом настраиваются блоки ADC, UART и другие.

Следующая закладка «Power Con­sumption Calculator» открывает окно, представленное на рисунке 7. Здесь можно проконтролировать режимы питания микроконтроллера и вычислить его энергопотребление.

Теперь, после всех проделанных манипуляций, можно сгенерировать программный код проекта, нажав на соответствующий элемент «Generate Code» в меню «Project». При этом откроется окно, показанное на рисунке 8, в котором необходимо заполнить название проекта, путь к нему и среду разработки проекта. В качестве среды разработки проекта можно выбрать «EWARM», «Keil MDK-ARM» или «TrueSTUDIO». Кроме того, в закладке «Code Generator» можно настроить опции генератора кода.

Наконец, после нажатия кнопки «Ok», STM32CubeMX приступит к генерации кода программы. При этом из Интернета в автоматическом режиме могут быть загружены недостающие модули и библиотеки.

Нажатие в последнем окне кнопки «Ok» приведёт к открытию среды разработки с программным кодом проекта. В нашем примере это среда разработки «Keil MDK-ARM», изображённая на рисунке 9.

Полученный программный код содержит все необходимые файлы и функции для рабочего проекта. Главный модуль программы находится в файле «main.c». Дополняя этот файл необходимыми для решения конкретной задачи командами, можно успешно завершить создание программы и сгенерировать в среде разработки «Keil MDK-ARM» программный код для загрузки в микроконтроллер.

Заключение

Таким образом, ПО STM32CubeMX позволяет программисту быстро создать заготовку для нового проекта на основе любого микроконтроллера семейства STM32 самым простым путём – с помощью мышки и оконных форм настройки, а не копировать куски программ из папки стандартной библиотеки с последующей доработкой их под свои задачи.

Литература

  1. www.st.com.

Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!

25.12.2015 1055 0
Комментарии
Рекомендуем
Бионический дизайн и SLM-технология в корпусных конструкциях электроники будущего

Бионический дизайн и SLM-технология в корпусных конструкциях электроники будущего

Роботизированная техника с помощью ИИ и 3D-технологий помогает разрабатывать корпусные изделия для РЭА качественнее, быстрее и эстетичнее. Иногда важен каждый грамм веса без потери надёжности конструкции, как в аэрокосмических разработках или специальной РЭА. Заметна тенденция в создании инновационных корпусов для РЭА: от бытовых переносных систем до монтажных шкафов с модульным размещением электронного оборудования, эффективной системой расположения модулей и вентиляции – для серверных и специальных установок. Статья будет полезна разработчикам РЭА, а также инженерам-конструкторам и технологам в области проектирования модульных, пластиковых и металлопрофильных конструкций корпусов для РЭА, монтажных, в том числе встраиваемых, шкафов, руководителям предприятий и отраслевым аналитикам.
11.06.2026 СЭ №5/2026 192 0
Современные системы управления электроприводов: структура и конструкция. Часть 2

Современные системы управления электроприводов: структура и конструкция. Часть 2

Статья посвящена системам управления электроприводов, которые в настоящее время являются основным средством приведения в движение рабочих машин и других технических устройств. Излагаются основные сведения об электроприводах и их системах управления, предназначенных для управления преобразователем электрической энергии и электродвигателем – главными составными частями электропривода. Рассматриваются различные варианты структуры и конструкции систем управления электроприводов. Приводится описание универсального микроконтроллерного блока управления БУПЧ, который является основой систем управления преобразователями частоты для электроприводов большой и сверхбольшой мощности концерна «Русэлпром».
09.06.2026 СЭ №5/2026 272 0

Реклама. ООО «Формика Ивент»  ИНН 7709889632  erid = 2SDnjdV94YS
Реклама. ООО «Формика Ивент»  ИНН 7709889632  erid = 2SDnjdsNsmc
  Подписывайтесь на наш канал в Telegram и читайте новости раньше всех! Подписаться