CubeMX - это программа, которая призвана помочь вам с выбором необходимого микроконтроллера STM32 для поставленной задачи, его первичной настройкой периферии и тактирования, а так же поможет вам рассчитать энергопотребление и наглядно покажет распиновку МК. В том числе позволит сгенерировать начальный код с функциями инициализации выбранной периферии.

Чтобы выбрать МК в зависимости от поставленной задачи, мы рассматриваем множество условий. С каким количеством внешней периферией и выводов GPIO нам предстоит работать, что влияет на выбор корпуса (количество выводов). Какие алгоритмы обработки данных будут задействованы, а это производительность (максимальная тактовая частота). Какие интерфейсы передачи данных будут использованы, тоже важно, т.к. в разных сериях/линейках имеются не все интерфейсы, либо их количества для вашей задачи не достаточно. Так же не мало важным параметром является энергопотребление.

Для упрощения выбора МК при создании проекта в CubeMX имеется фильтр, который как раз и позволяет отсеять весь ассортимент ST по следующим параметрам:

Core - ядро МК, Series - серия МК и Line - линейка МК.

Packege - корпус МК и Other - разные другие параметры, такие как цена, количество выводов, размер памяти и частота.

И на конец наличие встроенного графического контроллера и его параметры, а так же фильтр внутренней периферии.

После выбора и создания проекта CubeMX предоставляет возможность настройки и конфигурации МК и его периферии.

Во вкладке Pinout & Configuration имеются следующие разделы:

- System Core - для настройки модулей ядра;

- Analog - внутренняя аналоговая периферия (ЦАП и АЦП);

- Timers - модуль часов реального времени и таймера;

- Connectivity - интерфейсы передачи данных;

- Multimedia - мультимедийные интерфейсы;

- Security - модули шифрования и генератор случайных чисел;

- Computing - встроенные вычислительные модули;

- Middleware - бесплатные библиотеки поставляемые ST.

В разделе Middleware можно обратить внимание на неактивные пункты. Эти пункты станут активными как только вы активируете необходимый для их работы интерфейс. Например для TCP/IP стека необходимо активировать ETH (Ethernet интерфейс).

При активации периферийного устройства или другого модуля вам станут доступны конфигурации для настройки имеющихся параметров.

Справа в окне pinout view наглядно представлен МК, где вы можете в ручную выбрать назначение и название выводов.

Вкладка Sytem view, предоставляет быстрый доступ к настройкам активированной периферии.


Вкладка Clock Configuration позволяет настроить частоту системной шины, а так же некоторую периферию МК, которая должна работать на определенной частоте (USB, SAI и т.п.).

Вкладка Project Manager, предназначена для настройки генератора кода. 

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

На момент публикации статьи были доступны следующие среды разработки:

Раздел Code Generator позволяет настроить метод копирования файлов библиотеки, опции генерации файлов инициализации периферии и файла main.c, параметры HAL библиотеки и шаблона генерации файлов.

В разделе Advanced Settings, предоставлены настройки генерации кода для выбранной периферии.

В последней вкладке Tools нам предлагают посмотреть/рассчитать потребление МК. Данная опция может потребоваться при проектировании проектов с низким энергопотреблением, например когда имеется необходимость работы от батарей или аккумулятора. Но лучше, в такой ситуации, пользоваться прибором для измерения тока. Зная реальное потребление МК и периферии, вы будете иметь представление есть ли у Вас утечка по току и есть ли необходимость в поиске утечки.

После того как Вы всё настроили, можно сгенерировать код.

С настройками по умолчанию, будут скопированы все необходимые файлы библиотеки HAL и сгенерированы следующие файлы:

main.c
stm32fxxx_hal_msp.c
stm32fxxx_it.c
main.h
stm32fxxx_hal_msp.h
stm32fxxx_it.h

В файле main.c будут размещены функции инициализации периферии, настройки тактирования и, естественно, функции точки входа int main(void).

В файле stm32fxxx_hal_msp.c функции инициализаци выводов периферии, тактирования периферии и прерываний.

Обработчики прерываний CubeMx разместит в файле stm32fxxx_it.c.

Все сгенерированные константы, в том числе названия выводов которые вы указали, можно  найти в файле main.h.

Если вы планируете использовать сгенерированные файлы долгосрочно, обратите внимание на секции:

/* USER CODE BEGIN X */
...
...
...
/* USER CODE END X */

Размещайте свой код в пределах этих секций, иначе если вы что то измените в CubeMx и сгенерируете код заново, все ваши изменения вне секций будут потеряны.

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

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


© Copyright 2017. Все права защищены.
Яндекс.Метрика