Stm32Cubemx — Продвинутый Генератор Проектов Для Stm32

Пару недель назад компания STMicroelectronics выпустила обновление своей программы MicroXplorer, которое позволило графически настроить инициализацию портов в конкретном STM32 под свои нужды, в том числе переназначить порты и визуально увидеть, что занято/свободно в данный момент. Эта программа выглядела так:

STM32CubeMX — продвинутый генератор проектов для STM32

И это позволяло получать на выходе файлы *.

c, *.

h, содержащие функции для инициализации портов в соответствии с заданными требованиями с использованием стандартной периферийной библиотеки.

Что вы решили изменить на этот раз? И на этот раз в эту утилиту ST решили добавить полноценную генерацию проектов для следующих сред:

  • TrueSTUDIO 4.3.1
  • МДК-АРМ 4.73
  • ЭВАРМ 6.7
  • GCC
Мы переименовали SPL в HAL (High Access Level), добавили Middle Wares (FreeRTOS, Fatfs от Chan, классы USB и т.д.), в программе теперь сразу доступен инструмент настройки рабочей частоты в виде графической утилиты, а не как раньше в файле Excel, а еще добавлен интересный инструмент, который они назвали Калькулятор энергопотребления, позволяющий примерно рассчитать энергопотребление МК в зависимости от условий и задач и примерно узнать, сколько времени он проработает на определенный тип источника питания.

Это были ложки меда.

А теперь ложка дегтя.

Программа имеет 2 типа поставки - автономная и в виде плагина для eclipse. Итак, оба эти варианта работают только под Windows. И функционально они ничем не отличаются друг от друга.

Заявленной поддержки GCC я не нашел, видимо она не реализована на данный момент, хотя файлы запуска GCC имеются в библиотеках, почему не сделали непонятно.

На данный момент полностью работоспособна только линия F4. UPD от 06.04.14: Добавлена поддержка F2. Давайте рассмотрим, как работает программа, на конкретном простом примере: После установки программы вам необходимо установить один доступный на данный момент пакет для STM32F4 в меню Help -> Install New Libraries. Вот как выглядит начальное окно программы:

STM32CubeMX — продвинутый генератор проектов для STM32

Как видите, доступных действий не так много.

Создадим новый проект:

STM32CubeMX — продвинутый генератор проектов для STM32

Здесь выбираем нужную нам микросхему или подбираем ее по нужным параметрам в фильтре слева.

Спасибо ДЕХИКА за дополнения.

Вот как выглядит главный экран настройки контактов:

STM32CubeMX — продвинутый генератор проектов для STM32

Здесь я выбрал SDIO (для работы с SD-картами), пару выводов АЦП, SPI, USART и несколько штатных выводов настроил вручную.

Стоит сказать, что для каждого варианта доступна масса возможностей настройки, поэтому все можно без проблем изменить по своему желанию.

Далее идет вкладка для работы с тактированием:

STM32CubeMX — продвинутый генератор проектов для STM32

Если вы указали в конфигурации настройки внешнего кварца, то вы сможете ввести их значения.

Спасибо ДЕХИКА за дополнения.

Окно конфигурации:

STM32CubeMX — продвинутый генератор проектов для STM32

Здесь, в зависимости от того, что мы выбрали, будут отображаться доступные настройки.

Как видите, в данном случае я выбрал, что буду использовать USB в качестве класса CDC (Com-порт), SD-карту и FATFS для работы с файловой системой на этой карте.

Отмечу, что вы можете нажать на каждую из кнопок и изменить множество доступных настроек, например, вот некоторые настройки, доступные для конфигурации USB:

STM32CubeMX — продвинутый генератор проектов для STM32

и АЦП:

STM32CubeMX — продвинутый генератор проектов для STM32

Следующая заметка не имеет никакого отношения к самому проекту и тому, что будет генерироваться, но может быть кому-то полезна для расчета энергопотребления того или иного устройства:

STM32CubeMX — продвинутый генератор проектов для STM32

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

STM32CubeMX — продвинутый генератор проектов для STM32

Наконец, мы сгенерируем наш проект. Из списка поддерживаемых IDE у меня установлен только Keil, поэтому я выбрал его в конфигурации:

STM32CubeMX — продвинутый генератор проектов для STM32

Конечно же, открываем и собираем:

STM32CubeMX — продвинутый генератор проектов для STM32

Как видите, все открылось и собралось без каких-либо сложностей.



Заключение
Стоит сказать, что я конкретно не фанат систем генерации чего-либо.

И для этого есть несколько причин.

Во-первых, генератор проектов не освобождает вас от чтения даташитов.

Напротив, если что-то работает не так, как вы ожидаете, вы будете долго и упорно искать проблему, не понимая природы ее возникновения.

Сам генератор может содержать ошибки, и все они успешно перенесутся в ваши проекты.

Во-вторых, такие вещи абстрагируют дизайнера от конкретного устройства, и вряд ли человек поймет, как работать с USB и почему происходит именно так, а не иначе только потому, что он воспользовался генератором проектов и успешно подтянул все библиотеки.

Что касается этого продукта, то стоит сказать, что он еще очень сырой, в нем нет поддержки непроприетарных IDE, STM32F0, F2, F3 и не-Windows платформ.

Но посмотреть стоит для общего развития; например, FATFS можно успешно использовать в ваших проектах.

В конечном итоге только вы решаете, что и как этим использовать.



Похожие материалы
1. Страница проекта STM32CubeMX 2. Увесистый мануал к программе 127 страниц 3. Прошивка с помощью HAL и Middle Wars , для тех кому просто нужны библиотеки без генератора 4. Сгенерированный проект Теги: #stm32 #генератор кода #stm32cubemx #stm32cubemx #stm32cubemx #Программирование микроконтроллера
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.