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

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

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

25.12.2015 1144 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 1144 0
Комментарии
Рекомендуем
К 130-летию со дня рождения  великого советского физика  Игоря Евгеньевича Тамма.  Часть 5. Как были открыты плазмоны

К 130-летию со дня рождения великого советского физика Игоря Евгеньевича Тамма. Часть 5. Как были открыты плазмоны

Продолжаем серию статей о научном наследии Игоря Тамма. В предыдущих статьях мы рассмотрели, как его идеи, изложенные в статьях 1930–1950-х годов, повлияли на развитие нового научного направления «плазмоники», изучающего взаимодействие света с электронами в металлах и эффекты локализации света в объёмах меньше его длины волны. В частности, мы разобрали некоторые темы: современные быстродействующие электрооптические модуляторы, поверхностные состояния Тамма, запрещённые фотонные зоны, фотонные кристаллы («Современная электроника» № 7–9, 2025), а также экситон-поляритоны и фонон-поляритоны («Современная электроника» № 4, 2026). В этой статье мы расскажем о том, как научное предвидение Игоря Тамма позволило правильно прогнозировать именно те направления исследований, где были открыты объёмные и поверхностные плазмоны.
27.07.2026 СЭ №6/2026 169 0
Примеры измерения импульсной компоненты электромагнитного поля ОНЧ-диапазона на фоне сейсмической активности. Часть 2

Примеры измерения импульсной компоненты электромагнитного поля ОНЧ-диапазона на фоне сейсмической активности. Часть 2

Данная статья является продолжением работы «Примеры измерения импульсной компоненты электромагнитного поля ОНЧ-диапазона на фоне сейсмической активности» (Современная электроника. 2025. № 7. С. 39–43), в которой приведены экспериментальные данные импульсной компоненты естественного электромагнитного поля (И.К. Э-М. П.) ОНЧ-диапазона (600…3600 Гц), синхронно зарегистрированные на двух разнесённых по широте авроральных обсерваториях ПГИ Баренцбург (78,08°, 14,2°; арх. Шпицберген) и Ловозеро (67,97º, 35,08º; Мурманская обл., РФ). Для сопоставления сейсмической активности с АЧХ и АВХ И.К. ОНЧ-сигнала использованы архивные данные норвежской сети NORSAR, а также приведены некоторые характеристики гелиогеофизических факторов, влияющих на состояние нижней ионосферы: вариации магнитного поля Земли (Hx, Hy, Hz) и временны́е периоды освещённости Солнцем нижних слоёв ионосферы (h < 90 км) в пунктах регистрации ОНЧ-сигнала. Приёмно-регистрирующая аппаратура, используемая на обсерваториях, выполнена по идентичной схеме и состоит из приёмника ОНЧ-диапазона со взаимно ортогональным расположением приёмных рамочных антенн [1] и последовательного анализатора спектра импульсных сигналов [2].
24.07.2026 СЭ №6/2026 222 0

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