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

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

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

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

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

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

Телевизор с электронно-лучевой трубкой: разработки С.И. Катаева и их значение

«…Наступит время… когда миллионы таких приборов, таких "электрических глаз" будут всесторонне обслуживать общественную и частную жизнь, науку, технику и промышленность…» Б. Розинг Семён Исидорович Катаев (1904–1991 гг.), советский учёный и изобретатель в области телевидения, доктор технических наук, профессор, заслуженный деятель науки и техники – незаслуженно обделён вниманием популяризаторами истории электроники и телевидения в нашей стране. Тем не менее И.С. Катаев внёс значительный вклад в развитие инженерной мысли в СССР при разработке и усовершенствовании электронно-лучевых трубок (ЭЛТ), ставших на многие годы ключевой технологией, лежащей в основе экранов телевизоров и оборудования различного назначения. Катаев дополнил изобретение Зворыкина и по праву может считаться ещё одним «отцом» отечественного телевидения. В найденных документах роль Катаева прослеживается чётко, и в статье мы хотим это показать.
23.04.2026 СЭ №4/2026 137 0
Электронные системы диагностики, стимуляции и воздействия на человека на примере BAMH и управления –  на примере AE-Skin

Электронные системы диагностики, стимуляции и воздействия на человека на примере BAMH и управления – на примере AE-Skin

Путь будущих разработок в области современной электроники пролегает от визуального отображения окружающего пространства до тактильного. В этой связи представляют интерес система Bioinspired Adaptable Multiplanar mechano-vibrotactile Haptic (BAMH) – пневматически активируемый роботизированный электронный комплекс с интерфейсом из мягкого материала и система AE-Skin, обеспечивающая интерфейс между кожей человека и физическими поверхностями. Принцип её действия достаточно известен и заложен в управлении интерактивными экранами. В первой части статьи рассматриваются особенности новых разработок в области медицинской электроники и перспективы тактильного воздействия на кожу человека для лечения и изменения настроения. Во второй части представлен подробный разбор AE-Skin и примеры её совершенствования во всех сферах жизни человека: от управления посредством электронных тактильных датчиков миниатюрной формы до устройств на основе новых технологий, воспринимающих движения руками без прикосновения и без применения пироэлектрических детекторов, как управляющие сигналы для РЭА.
17.04.2026 СЭ №4/2026 183 0

ООО «ИнСАТ»  ИНН 7734682230  erid = 2SDnjdWbKyt
ООО «ИнСАТ»  ИНН 7734682230  erid = 2SDnje2F5cn
  Подписывайтесь на наш канал в Telegram и читайте новости раньше всех! Подписаться