Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2751
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

4. Инструмент STM32CubeMX

STM32CubeMX1 – это «швейцарский армейский нож» каждого разработчика STM32, а также фундаментальный инструмент, особенно если вы новичок в платформе STM32. Это довольно сложная часть программного обеспечения, свободно распространяемая ST, и она является частью «инициативы STCube»2, целью которой является предоставление разработчикам полноценного набора инструментов и библиотек для ускорения процесса разработки.

Несмотря на то, что существует хорошо известная группа людей, которые все еще разрабатывают встроенное программное обеспечение на чистом ассемблерном коде3, в настоящие дни время является самой дорогой вещью при разработке проекта, и очень важно получить как можно больше помощи для довольно сложной аппаратной платформы, такой как STM32.

В данной главе мы увидим, как работает этот инструмент от ST, и как создавать проекты Eclipse с нуля, используя сгенерированный им код. Это сделает плагин GNU MCU менее критичным компонентом для генерации проектов, что позволит нам создавать более качественный код, готовый к интеграции с HAL STM32Cube. Однако данная глава не является заменой официальной документации ST для инструмента CubeMX4 – документа, состоящего из более чем 170 страниц, в котором подробно объясняются все его возможности.

4.1. Введение в инструмент CubeMX

CubeMX – это инструмент, используемый для конфигурации микроконтроллера, выбранного для нашего проекта. Он используется как для выбора правильных аппаратных подключений, так и для генерации кода, необходимого для конфигурации HAL от ST.

CubeMX является приложением, ориентированным на микроконтроллеры. Это означает,

что все действия, выполняемые инструментом, основаны на:

Семействе микроконтроллеров STM32 (F0, F1 и т. д.).

Типе корпуса, выбранного для вашего устройства (LQFP48, BGA144 и т. д.).

Аппаратной периферии, которая нам нужна в нашем проекте (USART, SPI и т. д.)

Как выбранные периферийные устройства отображаются на выводы микроконтроллера

1Название STM32CubeMX будет упрощено до CubeMX в остальной части книги.

2https://www.st.com/en/embedded-software/stm32cube-mcu-mpu-packages.html

3Возможно, однажды кто-нибудь объяснит им, что, за исключением действительно редких и специфических случаев, современный компилятор может генерировать лучший ассемблерный код из Си, чем можно было бы написать непосредственно на ассемблере вручную. Тем не менее, мы должны сказать, что эти привычки ограничены сверхдешевыми 8-разрядными микроконтроллерами, такими как PIC12 и аналогичными.

4https://www.st.com/content/ccc/resource/technical/document/user_manual/10/c5/1a/43/3a/70/43/7d/DM0010471

2.pdf/files/DM00104712.pdf/jcr:content/translations/en.DM00104712.pdf

Инструмент STM32CubeMX

101

Общих конфигурациях микроконтроллера (например, тактирование, управление питанием, контроллер NVIC и т. д.)

Вдополнение к функциям, касающимся аппаратного обеспечения, CubeMX также может работать со следующими программными аспектами:

Управление HAL от ST для выбранного семейства микроконтроллеров (CubeF0, CubeF1 и т. д.).

Дополнительные функциональные возможности библиотек программного обеспечения, необходимые в нашем проекте (библиотека FatFs, FreeRTOS и т. д.).

Среда разработки, которую мы будем использовать для сборки микропрограммы

(IAR, TrueSTUDIO и т. д.).

CubeMX стремится быть полноценным инструментом управления проектами. Тем не менее, он имеет некоторые ограничения, которые сужают его использование на ранних этапах разработки платы и микропрограммы (подробнее об этом позже).

Мы уже установили CubeMX в Главе 2. Если вы еще не сделали этого, настоятельно рекомендуется обратиться к данной главе.

Рисунок 1: Инструмент CubeMX

После запуска CubeMX открывается симпатичный экран приветствия (см. рисунок 1). При нажатии на New project откроется диалоговое окно выбора микроконтроллера и платы, как показано на рисунке 2.

Рисунок 2: Инструмент MCU Selector в CubeMX

Инструмент STM32CubeMX

102

Это диалоговое окно содержит две основные вкладки: MCU Selector и Board Selector.

 

Первая вкладка позволяет выбрать микроконтроллер из всего ассортимента STM32. Несколько фильтров позволяют определить подходящий микроконтроллер для пользовательского приложения. Используя фильтры Serie, мы можем показать только те микроконтроллеры, которые принадлежат к выбранным сериям. Фильтры Line позволяют дополнительно выбирать микроконтроллеры, принадлежащие к подсемейству (Value line и т. д.). Фильтры Packages позволяют выбрать все микроконтроллеры, имеющие желаемый корпус. Фильтры Advanced Choice позволяют ограничить микроконтроллеры в соответствии с бюджетной ценой, количеством вводов/выводов (I/O), размерами памяти FLASH, SRAM и EEPROM. Наконец, фильтры из раздела Peripheral Choice позволяют выбирать доступные микроконтроллеры в соответствии с необходимыми периферийными устройствами.

Рисунок 3: Инструмент Board Selector в CubeMX

Вкладка Board Selector позволяет выполнять фильтрацию среди всех официальных отладочных плат ST (см. рисунок 3). На выбор существует три вида отладочных плат: Nucleo, Discovery и EvalBoard, являющиеся наиболее укомплектованными (и дорогими) отладочными платами для экспериментов с микроконтроллером STM32. Нас, очевидно, интересуют платы Nucleo. Итак, начните с выбора типа вашей платы Nucleo и нажмите кнопку

ОК.

В представлении Board Selector есть поле под выпадающим списком Vendor.

На метке написано Initialize all IP with their default Mode (Инициализировать все

IP с их режимом по умолчанию). Что это значит? Прежде всего, давайте уточним, что IP не означает Internet Protocol, а является аббревиатурой от Integrated Peripheral (Внутреннее периферийное устройство). Если данный флажок установлен,