Пакет поддержки STM32
|
Страница в процессе разработки. |
Target Hardware — это режим, который обеспечивает предварительную настройку проекта перед генерацией кода, сборкой и загрузкой прошивки, а также запуском модели на микроконтроллере.
Для работы с платами STM32 в данном режиме используется блок EDM-Target-STM32, который обеспечивает генерацию, сборку и загрузку прошивки, а также запуск модели на микроконтроллере.
Параметры блока EDM-Target-STM32
Блок EDM-Target-STM32 настраивает взаимодействие с микроконтроллером через следующие параметры:
-
Путь к проекту CubeMX — полный путь к сгенерированному проекту STM32CubeMX.
-
Путь к тулчейну[1] — полный путь к компилятору
arm-none-eabi-gcc.При указании
<auto>сначала ищется в путях, куда их ставит CubeIDE (если он установлен). Затем в PATH и в системных путях.-
Пример для Windows:
C:\ST\STM32CubeIDE_1.13.2\STM32CubeIDE\plugins\ com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_2.0.100.202309141235\ tools\bin\ -
Пример для Linux:
/opt/st/stm32cubeide_1.13.2/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_2.0.100.202309141235/tools/bin/arm-none-eabi-gcc
-
-
Путь к STM32CubeProgrammerCLI — полный путь к исполняемому файлу
STM32CubeProgrammerCLI.Для автоматического обнаружения установленного тулчейна воспользуйтесь выражением
<auto>в путях для определения тулчейна:
-
UART модуль — номер USART, который будет использоваться для интерактивного режима.
Этот номер должен совпадать с модулем, который необходимо предварительно настроить в STM32CubeMX для передачи данных по UART. Подробная инструкция приведена в разделе Интерактивный режим.
После настройки в CubeMX укажите тот же номер USART в параметре «UART модуль» блока EDM-Target-STM32 (например,
2для USART2). -
COM-порт — последовательный порт, соответствующий выбранному UART модулю (например,
COM3или/dev/ttyUSB0).
| Для работы блока необходимо заранее установить программное обеспечение STMicroelectronics (см. раздел «Необходимое ПО»). |
Необходимое ПО
Для работы с STM32 требуется установить следующие инструменты:
-
STM32CubeMX — для конфигурирования периферии микроконтроллера и генерации проекта.
-
STM32CubeIDE — рекомендуемая среда разработки, включающая компилятор и средства отладки.
Допускается работа без STM32CubeIDE. В этом случае необходимо установить отдельно:
-
Компилятор
gcc-arm-none-eabi -
Утилиту для прошивки
STM32CubeProgrammerCLI
|
Использование утилит может происходить двумя способами:
|
Подготовка Engee
Убедитесь, что пакет поддержки оборудования установлен и настроен. Его установка подробно описана в разделе Подключение к оборудованию.
| Если пакет поддержки уже установлен, то можно переходить к запуску клиентской программы и подключитесь по выданному URL. |
Подготовка проекта STM32
-
Установите и настройте STM32CubeMX.
-
Создайте проект для вашей платы STM32 и выполните базовую настройку периферии.
-
Нажмите GENERATE CODE и сохраните проект в удобную директорию.
-
Установите STM32CubeIDE или отдельно настройте компилятор и утилиту прошивки, если используете внешний тулчейн.
| Подробная конфигурация проекта CubeMX для работы с Engee описана ниже в разделе Настройка и запуск модели. |
Настройка и запуск модели
-
Откройте модель Engee.
-
Нажмите по кнопке выбора целевой платформы и выберите режим Target Hardware:

-
Добавьте блок EDM-Target-STM32 из библиотеки блоков на холст Engee. Если блок отсутствует — обновите пакет поддержки командой:
engee.package.start("Engee-Device-Manager") -
Настройте проект в STM32CubeMX:
-
В разделе Project Manager → Project выберите Copy only the necessary library files.
-
В разделе Project Manager → Toolchain / IDE обязательно установите значение CMake.

Выбор CMake является обязательным. Без этого формат проекта будет несовместим с Engee.
-
В разделе Code Generator выберите Generate peripheral initialization as a pair of '.c/.h' files per peripheral.

-
Настройте необходимую периферию и нажмите GENERATE CODE.

-
Укажите путь к сгенерированному проекту в параметре Путь к проекту CubeMX блока EDM-Target-STM32.

-
-
Выберите режим выполнения модели:
-
Запустить модель на железе
— интерактивное выполнение с управлением из Engee. -
Запуск в независимом режиме
— автономное выполнение без управления из Engee.
-
-
Нажмите кнопку запуска.
|
Если блок EDM-Target-STM32 не помещен в модель, при запуске появится ошибка:
|
Особенности настройки для разных режимов
Настройка для FreeRTOS
Проект под FreeRTOS[2] настраивается максимально просто:
-
В STM32CubeMX откройте Pinout & Configuration → Middleware and Software Packs.
-
Включите FREERTOS.
-
В разделе FREERTOS Mode and Configuration установите Interface в значение
CMSIS_V2.
-
Остальные параметры оставьте по умолчанию.
-
Сгенерируйте код кнопкой GENERATE CODE.
| В режиме FreeRTOS ручная настройка частоты выполнения модели не требуется — в отличие от режима bare-metal, где таймер настраивается вручную. |
Настройка для bare-metal
В режиме bare-metal[3] частота выполнения модели задается вручную через таймер:
-
Выберите свободный таймер (например, TIM3).
-
Установите источник тактирования
Internal Clock.
-
Рассчитайте параметры таймера по формуле:
T = ((P + 1) × (R + 1)) / F_CPUГде:
-
P— Prescaler -
R— Counter Period -
F_CPU— Тактовая частота микроконтроллераПример для 72 МГц:
P = 7199 R = 9
-
-
Установите значения в параметрах таймера.

-
Во вкладке NVIC Settings включите прерывание таймера.

-
Добавьте вызов функции model_tick()[4]:
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if (htim->Instance == TIM1) { HAL_IncTick(); } if (htim->Instance == TIM3) { model_tick(); } } -
После инициализации таймера добавьте запуск:
HAL_TIM_Base_Start_IT(&htim3);
Интерактивный режим
Интерактивный режим использует UART для связи с Engee:
-
В STM32CubeMX выберите свободный USART модуль.
-
Установите параметры:
-
Baud Rate —
115200 Bit/s
-
Остальные параметры — По умолчанию
-
-
В параметрах блока EDM-Target-STM32 укажите:
-
UART модуль — Номер USART
-
COM-порт — Порт устройства

-
Примеры:
-
Linux —
/dev/ttyUSB0 -
Windows —
COM1Проверка доступных портов в Linux:
ls /dev | grep ttyUSB
| Для отображения UART как COM-порта может потребоваться настройка USB_DEVICE. Подробнее см. руководство: STM32 и USB. Реализация USB Virtual COM Port |
Решение возможных проблем
Проблемы с подключением по UART
При сообщении Unable connect to target:
-
Проверьте надежность USB-соединения
-
Убедитесь в корректности подключения TX/RX
-
В Linux добавьте пользователя в группу, которая имеет доступ к последовательным устройствам (например,
wheel,uucpили другую — в зависимости от вашего дистрибутива).
model_tick(), обработка событий) должны быть настроены вручную.