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

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

В статье приведено описание программного инструмента STM32CubeMX визуальной графической подготовки и генерации программного кода на языке Си для 32-разрядных ARM-микроконтроллеров серии STM32 от компании STMicroelectronics.
25.12.2015 1408 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 1408 0
Комментарии
Рекомендуем
Проверяемое автономное управление: архитектура контроля решений ИИ в киберфизических и распределённых системах Электроника и автоматизация

Проверяемое автономное управление: архитектура контроля решений ИИ в киберфизических и распределённых системах

В статье рассматривается архитектура SEACS (Self-Evolving Autonomous Control System), предназначенная для построения проверяемого контура автономного управления в распределённых и киберфизических системах. В отличие от подходов, где успешный вызов модели или выполнение команды трактуется как завершение задачи, SEACS разделяет наблюдение, оценку состояния, выбор решения, исполнение и последующую проверку фактического результата. Рассматриваются механизмы управления риском и доверием, гистерезиса, задержки повторных воздействий, резервных сценариев и передачи решения человеку. Отдельное внимание уделено воспроизводимым испытаниям, требованиям к данным и метрикам, а также ограничениям исследовательского прототипа.
30.10.2026 СЭ №8/2026 214 0
К 130-летию со дня рождения великого советского физика Игоря Евгеньевича Тамма. Часть 7. Оптические уровни  и плазмон-поляритоны Тамма Электроника и автоматизация

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

Эта статья завершает серию публикаций о научном наследии Игоря Тамма, в которой была проанализирована эволюция идей Тамма и его учеников от 1930-х годов до наших дней. Среди различных направлений, которыми в различные периоды своей жизни занимался Игорь Тамм, мы остановились на тематике, связанной с взаимодействием света с электронами на границе металла и диэлектрика. Данное направление, начавшееся с разработки теории «таммовских поверхностных состояний», логически продолжилось открытием оптических состояний Тамма (Optical Tamm States – OTS), а затем плазмон-поляритонов Тамма (Tamm Plasmon-Polaritons – TPP). Именно этим двум явлениям посвящена настоящая статья.
28.10.2026 СЭ №8/2026 228 0

Реклама
Реклама.  ООО «Остек-СМТ»  ИНН 7731481045  erid = 2SDnjchs19E
Реклама
Реклама.  ООО «Остек-СМТ»  ИНН 7731481045  erid = 2SDnjdHxidA
  Подписывайтесь на наш канал в Telegram и читайте новости раньше всех! Подписаться