Чтобы повысить удобство использования многофункциональной и энергоэффективной линейки микроконтроллеров STM32, в 2019 году ST добавила в экосистему программного обеспечения STM32Cube бесплатный многофункциональный инструмент разработки STM32: STM32CubeIDE.
Чтобы работать так же хорошо, как коммерческие инструменты интегрированной среды разработки (IDE), STM32CubeIDE в полной мере использует технологии Atollic®, поставщика инструментов для встроенной разработки, приобретенного STMicroelectronics в 2017 году. Используя открытые условия лицензирования, соответствующие отраслевым стандартам, это программное обеспечение IDE добавляет специфические для STM32 функции, упрощающие и ускоряющие разработку встроенных систем на базе STM32, в том числе мощные инструменты конфигурации микроконтроллеров STM32CubeMX и управления проектами.
Интегрировав STM32CubeMX с STM32CubeIDE, ST создала более мощную среду разработки. Полная экосистема STM32Cube также включает в себя программатор STM32CubeProgrammer и семейство мониторов выполнения кода STM32CubeMonitor, а также множество автономных пакетов прошивки для микроконтроллеров.
Что такое STM32CubeIDE?
STM32CubeIDE — это официальный бесплатный инструмент разработки программного обеспечения от ST, основанный на платформе Eclipse®/CDT, наборе инструментов компиляции GCC и инструменте отладки GDB, который поддерживает добавление функциональных плагинов сторонних производителей. В то же время STM32CubeIDE объединяет некоторые функции STM32CubeMX и STM32CubeProgrammer.
С помощью STM32CubeIDE разработчики могут выполнять все операции, от выбора микросхемы, настройки проекта и генерации кода до редактирования, компиляции, отладки и записи кода.

Особенности STM32CubeIDE
1. Интеграция STM32CubeMX:
- Выбор микроконтроллера STM32
- Назначение выводов, тактовые генераторы, конфигурация IP и промежуточного программного обеспечения
- Создание проекта и генерация кода инициализации
2. На основе Eclipse/CDT, поддержка плагинов Eclipse, использование инструментальной цепочки ARM и отладчика GDB в GNU C/C++.
3. Другие расширенные функции отладки:
- Ядра ЦП, регистры IP и представления памяти
- Просмотр переменных в реальном времени
- Системный анализ и отслеживание в реальном времени (SWV)
- Инструмент анализа ошибок ЦП
4. Поддержка отладочных зондов ST-LINK и J-Link
5. Поддержка импорта проектов из TrueSTUDIO и AC6 (SW4STM32)
6. Поддерживаемые операционные системы: Windows, Linux и MacOS
STM32CubeIDE Скачать
Вот официальная ссылка для скачивания:
https://www.stmicroelectronics.com.cn/en/development-tools/stm32cubeide.html
Рабочая среда STM32CubeIDE
STM32CubeIDE — это среда на базе Eclipse, которая унаследовала некоторые незнакомые пользователям функции Eclipse, такие как перспективные виды, рабочие пространства и т. д.
Рабочая область: STM32CubeIDE управляет проектами через рабочую область. При открытии STM32Cube создается новая рабочая область по умолчанию. Новый или импортированный проект будет принадлежать этой рабочей области. Проекты в одной рабочей области имеют одинаковую конфигурацию на уровне IDE (устанавливается в Window→Preferences), например настройки отображения и стиля редактирования. С точки зрения файловой системы, рабочая область — это папка, содержащая несколько папок проектов и папку с именем «.metadata», которая содержит информацию обо всех проектах в этой рабочей области. Папка «.metadata» содержит информацию обо всех проектах в рабочей области. Пользователь может переключаться между рабочими областями через меню File→Switch Workspace.
Перспектива: Перспектива — это набор окон, связанных с определенным типом функций. Обычно используются перспективы «Редактирование C/C++», «Отладка» и «Конфигурация CubeMX».
Перспектива редактирования C/C++ включает в себя диспетчер проектов, окно редактирования, окно структуры и т. д. Диспетчер проектов позволяет просматривать и управлять всеми проектами в текущей рабочей области. Двойной щелчок открывает файл в проекте, и его содержимое отображается в окне редактирования, где его можно редактировать. В крайнем правом окне структуры перечислены все функции, переменные и макросы, определенные в текущем открытом файле.
Меню «Window Show View» (Окно «Показать вид») позволяет открывать и закрывать окна, которые необходимо отобразить в перспективе редактирования C/C++.
Вы можете переключаться между различными видами перспективы, используя значки в правом верхнем углу, например, щелкнув значок краулера, вы можете переключиться на вид перспективы отладки. Нажатие кнопки «Отладка» на панели инструментов под видом перспективы редактирования C/C++ также автоматически переключит вас на вид перспективы отладки после запуска отладки.
Как использовать STM32CubeIDE?
1. Управление проектами
Создать новый проект
С помощью STM32CubeIDE пользователи могут запустить новый проект различными способами. На экране приветствия STM32CubeIDE перечислены ярлыки для создания/импорта проекта, соответствующие четырем сценариям, приведенным ниже. Соответствующие функции также можно реализовать с помощью пунктов «New» (Создать) и «Import» (Импорт) в меню «File» (Файл).
- Создание нового проекта STM32 с нуля
- Уже имеется файл конфигурации STM32CubeMX (*.ioc), и вы хотите создать новый проект STM32 на основе этого файла ioc.
- У меня уже есть проект SW4STM32 или TrueSTUDIO, и я хочу преобразовать его в проект STM32CubeIDE.
- Создать новый проект на основе подпрограмм из библиотеки STM32Cube
Структура проекта STM32CubeIDE
STM32CubeIDE имеет две структуры проекта, как показано на следующем рисунке.
Одноядерные микроконтроллеры имеют плоскую структуру.
Для микроконтроллеров с двухъядерной архитектурой или микроконтроллеров безопасности, таких как серии STM32H7, STM32L5 и STM32MP1, проект STM32CubeIDE представляет собой иерархическую структуру. Возьмем в качестве примера STM32H7. После создания или импорта проекта STM32H7 в панели Project Explorer вы увидите трехслойную структуру проекта: верхний слой — это «корневой» проект, затем идут два «дочерних» проекта, соответствующие ядрам CM7 и CM4 соответственно. Верхний уровень — это «корневой» проект, затем идут два «дочерних» проекта, соответствующие ядрам CM7 и CM4, а файлы проекта находятся в «дочерних» проектах. Эти два «дочерних» проекта CM7 и CM4 являются реальными проектами, которые можно компилировать и отлаживать, в то время как «корневой» проект является лишь «контейнером», содержащим «дочерние» проекты CM7 и CM4. В документах AN5361, AN5394, AN5360 и AN5564 описано, как создавать, импортировать, компилировать и отлаживать проекты STM32H7 dual-core, STM32L5, STM32MP1 и STM32WL соответственно в STM32CubeIDE.
Управление библиотекой прошивок
STM32CubeIDE интегрирует некоторые функции STM32CubeMX, позволяя создавать новый проект путем непосредственного выбора модели микросхемы/платы разработчика или выбора подпрограммы. Драйвер и код подпрограммы, необходимые для создания проекта с помощью STM32CubeIDE, взяты из библиотек прошивки каждого семейства STM32.
В разделе «Справка» → «Управление пакетами встроенного программного обеспечения» можно управлять всеми библиотеками прошивки STM32 и другими плагинами (устанавливать/удалять библиотеки прошивки).
Кнопка «Установить сейчас» позволяет STM32CubeIDE автоматически загружать и устанавливать из сети, а кнопка «Из локального хранилища» позволяет устанавливать предварительно загруженные библиотеки прошивки.
Кнопка «Удалить сейчас» позволяет удалить выбранную библиотеку прошивки.
На вкладке «STM32Cube Firmware Updater» в окне «Window Preferences» можно установить путь к библиотеке прошивки и способ ее обновления.
Конфигурация сети
По умолчанию STM3CubeIDE будет пытаться подключиться к сети при открытии и создании нового проекта. Вы также можете выбрать «Off Line Mode» (Автономный режим), чтобы STM32CubeIDE не подключался к сети. Однако вам необходимо установить предварительно загруженные библиотеки прошивки с помощью кнопки «From Local» (С локального диска) в окне «Embedded Software Packages Manager» (Диспетчер встроенных программных пакетов) на предыдущем рисунке, иначе код для нового проекта STM32 не будет сгенерирован автоматически.
Нажмите кнопку «Check Connection» (Проверить соединение), чтобы проверить текущее состояние сетевого соединения. Если в конце проверки появляется красный крестик, это означает, что есть проблема с конфигурацией сети, и нам нужно перейти на страницу «Network Connection» (Сетевое соединение), чтобы настроить ее.
В дополнение к предыдущему активному обнаружению состояния сети, если загрузка прошивки не удалась, проверьте также, верна ли сетевая конфигурация STM32CubeIDE.
Шаги по настройке показаны на следующем рисунке:
1. Перейдите в меню «Настройки окна» и выберите вкладку «Общие сетевые подключения».
2. Выберите «Ручной метод
». 3. Выберите «HTTP» и дважды щелкните, чтобы открыть окно редактирования для настройки параметров сетевого подключения.
Открыть/Закрыть/Удалить/Переключить/Экспортировать проекты STM32CubeIDE
В окне «Проводник проектов» отображаются все проекты, относящиеся к текущей рабочей области. В этом окне пользователи могут открывать/закрывать/удалять/импортировать/экспортировать/переименовывать любые проекты.
2. Компиляция кода
Настройка свойств и компиляция
Выберите проект в Project Explorer, щелкните по нему правой кнопкой мыши и войдите в меню свойств, где вы можете настроить элементы компиляции.
После завершения настройки проект готов к компиляции. Вы можете запустить компиляцию тремя способами:
— Способ 1: выберите проект, щелкните по нему правой кнопкой мыши и выберите «Собрать проект».
— Способ 2: выберите проект, войдите в него из меню «Проект», а затем выберите «Собрать проект».
— Способ 3: выберите проект и щелкните значок «Собрать» на панели инструментов.
Улучшение скорости компиляции
Включив параллельную сборку, вы можете повысить скорость компиляции STM32Cube IDE.
Выберите проект, щелкните по нему правой кнопкой мыши и войдите в меню свойств, выберите «C/C++ Build» и на вкладке «Behavior» установите флажок «Enable parallel build».
Вспомогательные инструменты для компиляции
После компиляции проекта в окне «Build Analyzer» отображается использование всех областей памяти и секций, определенных в файле ссылки, включая адрес загрузки, адрес запуска, количество занятых байтов, количество оставшихся байтов и т. д.
В окне «Static Stack Analyzer» отображается использование статического стека.
STM32CubeIDE также предоставляет функцию Headless Build, которая позволяет компилировать из командной строки без открытия графического интерфейса CubeIDE.
3. Отладка и запись кода
Конфигурация отладки и запуска
После того, как проект STM32CubeIDE был скомпилирован без ошибок, он готов к отладке и загрузке.
На панели инструментов C/C++ Perspective есть три кнопки, связанные с загрузкой и отладкой: Debug, Run и External Tools.
Маленький треугольник рядом с кнопкой «Debug» открывает меню Debug Configurations для настройки параметров отладки, таких как выбор отладчика, настройки подключения GDB, настройки ST-LINK, настройки внешнего Flash Loader и т. д., а также для запуска отладки.
С помощью кнопки «Run» можно загрузить программу, не запуская отладку.
Кнопка «External Tools» позволяет вызвать внешние инструменты командной строки.
Начать отладку
STM32CubeIDE использует GDB для отладки, поддерживает отладчики STLink и SEGGER J-Link, а также поддерживает подключение к целевому микроконтроллеру через интерфейс SWD или JTAG.
После компиляции проекта STM32CubeIDE отладку можно запустить непосредственно, щелкнув значок паука на панели инструментов или выбрав меню Run—>Debug.
Если отладка текущего проекта выполняется впервые, STM32CubeIDE сначала скомпилирует проект, а затем откроет окно настройки отладки. Окно настройки отладки содержит параметры выбора интерфейса отладки, настройки STLink, настройки сброса и настройки внешнего флэш-загрузчика и т. д. Пользователи могут проверить или изменить настройки. После подтверждения правильности всех настроек можно нажать OK, чтобы начать отладку.
Затем STM32CubeIDE сначала загрузит программу в MCU, а затем начнет выполнение с входа программы, указанного в файле ссылки (*.ld). По умолчанию программа начинает выполнение с Reset_Handler и приостанавливается на первой строке основной функции, ожидая следующей отладочной инструкции.
Пример программирования STM32CubeIDE
Давайте пройдемся по процессу разработки программного обеспечения с помощью STM32CubeIDE на примере программы мигания светодиода.
В этой программе используется плата разработчика NUCLEO-H743ZI, и с помощью STM32CubeIDE создается новый проект с нуля. Затем в проекте реализуется простая функция: встроенный светодиод LED1 мигает автоматически с интервалом 500 мс.
Из этого примера программирования мы можем извлечь следующие уроки:
- Создание нового проекта STM32CubeIDE
- Настройте микросхему STM32
- Добавьте пользовательский код и скомпилируйте
- Установите параметры отладки
- Отладить код (просмотреть переменные и регистры)
- Установите точки останова
Сначала выберите «Файл» —> «Новый» —> «Проект STM32», STM32CubeIDE откроет окно выбора микроконтроллера. В этом окне вы можете выбрать определенную модель микросхемы или определенную плату разработчика ST или подпрограмму. Здесь мы вводим STM32H743ZI в поле поиска, вы можете напрямую выбрать эту микросхему, а затем нажать «Далее».
В следующем всплывающем окне необходимо указать название проекта, тип и место для его сохранения. По умолчанию новый проект будет сохранен в текущей рабочей области, но вы также можете снять флажок «Использовать местоположение по умолчанию» и настроить местоположение проекта, как показано ниже. Обратите внимание, что если вы попытаетесь поместить два проекта в один и тот же путь, позже во время процесса создания может возникнуть ошибка. Поэтому вы можете добавить название проекта в путь, чтобы различать разные проекты.
После завершения настройки нажмите «Готово», и STM32CubeIDE создаст для нас проект и откроет интерфейс настройки микросхемы, который аналогичен STM32CubeMX.
В это время может появиться всплывающее окно с предложением открыть окно настройки CubeMX. Нажмите «Да», и все готово.
Следующим шагом является настройка тактовой частоты, GPIO, периферийных устройств, промежуточного программного обеспечения и т. д. в соответствии с функциональными требованиями на экране настройки микросхемы. В этой процедуре мы используем только PB0, который служит выходом для управления LED1, поэтому нам нужно только настроить его. Тактовая частота использует настройки по умолчанию.
В окне Pinout view (Вид распиновки) можно быстро найти нужный вывод на схеме корпуса микросхемы с помощью панели поиска.
Выберите вывод, щелкните по нему правой кнопкой мыши и выберите функцию GPIO_Output.
Затем перейдите в окно System view, щелкните модуль GPIO, и вы увидите только что настроенный вывод PB0. В этом окне также можно продолжить настройку других параметров PB0, таких как подтяжка/понижение, скорость и т. д. Также можно определить для него пользовательскую метку LDE1, которую легко использовать в коде.
После завершения настройки выберите Project—>Generate Code, чтобы перегенерировать код. На этом этапе STM32Cube переключается в режим просмотра C/C++, и вы можете добавить файл пользователя или внести изменения в файл C.
Здесь мы добавляем фрагмент кода, который переворачивает PB0. Обратите внимание, что весь добавленный пользователем код должен быть помещен между декларациями «USER CODE BEGIN xxx» и «USER CODE END xxx». Таким образом, при повторном сгенерировании кода эта часть кода не будет утеряна.
После добавления кода нажмите «Build» (Сборка), чтобы начать компиляцию.
Если компиляция завершена и ошибок не обнаружено, можно нажать «Debug» (Отладка), чтобы начать отладку.
При первом запуске отладки откроется окно настройки параметров отладки. Убедитесь, что все параметры указаны правильно, нажмите «OK», и STM32CubeIDE автоматически переключится из интерфейса редактирования в интерфейс отладки. Как показано на рисунке ниже.
В интерфейсе отладки вы можете выполнять отладку пошагово, используя кнопки действий на панели инструментов.
Дважды щелкните по крайней левой полосе маркера строки кода, чтобы добавить точку останова в этой строке кода.
Справа открываются несколько окон отладки, в том числе: локальные переменные, точки останова, глобальные переменные и регистры и т. д. Эти окна можно открыть или закрыть в меню «Window—>Show View» (Окно—>Показать вид).
STM32CubeIDE против STM32CubeMX
STM32Cube IDE — это интегрированная среда разработки (IDE) для создания приложений на микроконтроллерах STM32. Основанная на платформе Eclipse, STM32Cube IDE объединяет STM32CubeMX, отладчики, редакторы, компиляторы и другие инструменты, предоставляя разработчикам комплексную среду. STM32Cube IDE предлагает возможности отладки, управления версиями, редактирования кода и сборки, позволяя разработчикам выполнять весь процесс разработки в едином интерфейсе.
STM32CubeMX — это графический инструмент конфигурации, предназначенный для инициализации микроконтроллеров STM32 и генерации кода инициализации. Он предоставляет интуитивно понятный интерфейс, позволяющий пользователям выбирать модели микроконтроллеров, настраивать периферийные устройства, сопоставлять выводы и генерировать соответствующий код инициализации. STM32CubeMX также может генерировать файлы конфигурации FreeRTOS, настраивать дерево тактовых генераторов и устанавливать приоритеты прерываний. Сгенерированный код может быть интегрирован в различные интегрированные среды разработки (IDE), такие как Keil или IAR, для дальнейшей разработки приложений.
| Feature | STM32CubeMX | STM32Cube IDE |
|---|---|---|
| Purpose | Configuration tool for STM32 MCUs | Full IDE for application development |
| Functionality | Initializes MCUs, configures peripherals, generates code | Code writing, debugging, building, and compiling |
| Platform | Standalone, integrates with Keil, IAR | Built on Eclipse, integrates CubeMX, debugging tools |
| Code Generation | Generates initialization code for external IDEs | Develops and compiles applications directly |
| User Interface | Graphical interface for configuration | Full IDE with editing and debugging tools |
| Use Case | Set up peripherals and generate base code | Write, build, and debug applications |
Часто задаваемые вопросы о STM32CubeIDE
Может ли STM32CubeIDE генерировать файлы BIN или HEX после компиляции?
По умолчанию STM32CubeIDE генерирует файлы ELF после компиляции. Однако он также поддерживает генерацию файлов HEX или BIN. Процесс настройки выглядит следующим образом: перейдите в главное меню Project > Properties > C/C++ Buildи откройте настройки, где можно настроить формат вывода.

Поддерживает ли он интеграцию с STM32CubeMX?
Да, конечно. STM32CubeIDE фактически интегрирует STM32CubeMX в качестве модуля в свою среду разработки. При создании нового проекта в CubeIDE автоматически запускается STM32CubeMX, что позволяет пользователям выполнять графическую настройку инициализации.
Почему STM32CubeIDE не генерирует код?
Может быть несколько причин, по которым STM32CubeIDE не генерирует код:
- Убедитесь, что STM32CubeMX правильно интегрирован и вызван во время создания проекта.
- Перед попыткой сгенерировать код убедитесь, что вы правильно настроили микроконтроллер и его периферийные устройства в STM32CubeMX.
- Проверьте настройки в разделе
Project > Properties, особенно параметры генерации кода. - Убедитесь, что нет ошибок или пропущенных настроек, которые могут помешать генерации кода.



