CubeMX и Workbench: создание проекта на базе STM32 с помощью бесплатного ПО

10 марта 2016

ST MicroelectronicsстатьяSTM32STMCube

Визуальный графический редактор STM32CubeMX и среда разработки System Workbench for STM32 (краткое обозначение – SW4STM32) – лучший способ быстрой, наглядной, простой в освоении бесплатной разработки системы на базе микроконтроллеров семейства STM32.

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

Сегодня имеется достаточно большой выбор как отдельных инструментов в виде редакторов, компиляторов, отладчиков кода, так и интегрированных систем разработки (IDE). Можно воспользоваться платными пакетами ПО профессионального уровня, однако имеется и достаточный выбор свободно распространяемых средств. Последним принято приписывать ряд недостатков, обусловленных их бесплатностью и включающих ограниченный набор возможностей, недостаточно оперативную поддержку новых версий, избыточность конечного генерируемого кода.

Однако два новых продукта – STM32CubeMX и System Workbech for STM32 – предназначенных для работы с микроконтроллерами STMicroelectronics, выделяются целым рядом несомненных достоинств, призванных обеспечить дальнейшую популяризацию среди разработчиков семейства 32-разрядных микроконтроллеров STM32.

STM32CubeMX – конфигуратор для микроконтроллеров STMicroelectronics

STM32CubeMX является визуальным графическим редактором для конфигурирования микроконтроллеров семейства STM32, позволяющим генерировать код на основе языка Си, используя для этого графических помощников.

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

Тем не менее, при всех отмеченных ограничениях имеющиеся достоинства позволяют с успехом во многих случаях использовать генераторы кода для инициализации МК.

Созданный компанией STMicroelectronics программный пакет STM32CubeMX представляет собой настоящее автоматизированное рабочее место для разработчиков систем на базе 32-битных микроконтроллеров STM32, выполненных на основе ядер ARM Cortex. Это удобная среда для полноценной настройки конфигурации МК с выдачей пакета файлов инициализации, пригодных для дальнейшего использования в ряде систем разработки и отладки управляющего кода МК. STM32CubeMX значительно упрощает создание встраиваемого ПО, ускоряет этот процесс, не требует от начинающих специалистов досконального знания документации на МК, позволяет обойтись начальными сведениями об аппаратной и программной архитектуре контроллера, о возможностях библиотек ПО. STM32CubeMX отчасти позволяет эффективно совместить работу над своими первыми проектами с изучением возможностей МК.

Для опытных разработчиков STM32CubeMX (рисунок 1) станет удобной средой со всеми необходимыми для работы интегрированными инструментами. Пакет является частью фирменного программного обеспечения STMicroelectronics STM32CubeMX, призванного облегчить труд разработчиков, сократить длительность исполнения и стоимость проектов.

Рис. 1. Состав STMCubeMX

Рис. 1. Состав STMCubeMX

STM32CubeMX является расширением другого инструмента – MicroXplorer – и состоит из набора модулей многоуровневого встраиваемого ПО. Он обеспечивает удобное и наглядное отображение и конфигурацию внешних выводов и внутренних ресурсов микроконтроллера с созданием на выходе соответствующей программы инициализации на языке С/C++, которая пригодна для последующего дополнения управляющим кодом.

В состав STM32CubeMX входят также программные библиотеки для отдельных серий МК (такие как STM32CubeF7 для серии STM32F7), скачиваемые с сервера производителя при создании первого проекта. Они сохраняются в дисковом пространстве локального компьютера в специальном каталоге под названием репозиторий c возможностью дальнейшего их использования в разнообразных приложениях. Такие библиотеки включают STM32Cube HAL (уровень абстракции встроенного ПО, обеспечивающий максимальную взаимозаменяемость МК семейства STM32), а также согласованный набор компонентов библиотечного ПО MiddleWare (RTOS, USB, TCP/IP и графика). Все утилиты встроенного ПО имеют полноценный комплект примеров (рисунок 2).

Рис. 2. Алгоритм работы STMCubeMX

Рис. 2. Алгоритм работы STMCubeMX

При создании нового проекта STM32Cube предлагает сделать выбор из открывающегося в меню “New Project” перечня контроллеров и плат отладки. Первый шаг включает выбор микроконтроллера из обширного ассортимента компании STMicroelectronics, который бы соответствовал имеющимся требованиям по периферийным возможностям, производительности ядра, объему и типу встроенной памяти, набору периферии. Здесь же можно выбрать плату для отладки проекта.

Удобная система фильтрации моделей позволяет ограничивать отображаемые списки рамками определенных семейств или заданными параметрами, включая поддержку необходимого количества каналов ЦАП и АЦП, Ethernet, USB, CAN, объем массивов встроенной Flash-памяти, RAM, EEPROM и другие возможности.

STM32CubeMX обеспечивает интуитивно понятный, визуальный графический интерфейс с четырьмя закладки для настройки используемого в проекте контроллера: Pinout, Clock Configuration, Configuration и Power Consumption Calculator.

В процессе работы над своим проектом пользователь может конфигурировать и настраивать используемое встроенное ПО. Для этого предлагаются мастер распиновки (назначения выводов), мастер синхронизации (настройки схемы тактирования), калькулятор энергопотребления, утилита конфигурации периферийных модулей микроконтроллера (GPIO, USART и так далее) и набор библиотек (USB, TCP/IP и другие).

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

Конфигурация выводов (Pinout)

После выбора МК на вкладке “Pinout” (рисунок 3) в правом окне визуального интерфейса открывается схематическое изображение всех выводов микроконтроллера с их обозначениями, а в левом окне обозревателя будет доступна конфигурация поддерживаемых периферийных функций и библиотек MiddleWares.

Рис. 3. Рабочий экран STMCubeMX (вкладка Pinout)

Рис. 3. Рабочий экран STMCubeMX (вкладка Pinout)

Clock Configuration

В окне “Clock Configuration” представлено упрощенное схематическое изображение всей системы синхронизации контроллера с источниками сигналов, делителями и мультиплексорами.

На вкладке “Clock Configuratiuon” обеспечена автоматическая конфигурация системы тактирования и часов реального времени в зависимости от выбранных разработчиком источников и требуемой частоты выходного сигнала. Если нет особых требований, можно все оставить по умолчанию, с тактированием от имеющегося в микроконтроллере внутреннего RC-генератора на 16 МГц (HSI RC). Либо можно выбрать один из типов внешнего источника тактирования (HSE). Для этого нужно выполнить настройки во вкладке Peripherals, раздел RCC (reset clock control). А мастер конфигурации тактирования сам автоматически выполнит необходимые настройки в схеме синхронизации внутренних регистров и периферии микроконтроллера. При необходимости он использует встроенную систему PLL (ФАПЧ). Источники, используемые для тактирования и работы часов реального времени, обозначены на рисунке 4 в виде голубых блоков.

Рис. 4. Рабочий экран системы тактирования STMCubeMX

Рис. 4. Рабочий экран системы тактирования STMCubeMX

Configuration

В окне конфигурации STMCubeMX (рисунок 5) отображается конфигурация всех программных компонентов: порты ввода/вывода (GPIO), связь с периферией, межплатформенное ПО (MiddleWare).

Рис. 5. Рабочий экран Configuration

Рис. 5. Рабочий экран Configuration

Активируемые кнопки позволяют выбирать сгруппированные по разделам параметры инициализации компонентов проекта, которые будут включены в создаваемый код инициализации контроллера. Цветные метки на кнопке отражают состояние конфигурации. Зеленый цвет – корректная конфигурация. Желтый – неполная, но функционально действующая конфигурация. Красный – неверная конфигурация.

Все доступные в правой панели элементы сгруппированы по разделам: MiddleWares, Мультимедиа, Управление, Аналоговые функции, Интерфейсы, Система. Выделение отдельных позиций черным шрифтом соответствует их доступности, но не завершенной полностью при рабочем состоянии конфигурации.

Элементы в правой панели конфигурации MiddleWare и Peripherals доступны здесь в урезанном виде, их редактирование и настройка выполняются только через вкладку Pinout.

Power Consumption Calculator

Снижение потребляемой энергии сегодня становится серьезной задачей при создании многих встраиваемых систем и автономных устройств. Чтобы помочь свести энергопотребление к минимуму, STMCubeMX предлагает имеющийся в составе программы калькулятор потребляемой мощности (рисунок 6).

Рис. 6. Рабочий экран калькулятора энергопотребления

Рис. 6. Рабочий экран калькулятора энергопотребления

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

Power Consumption Calculator позволяет задавать рабочие режимы для контроллера проектируемого устройства. При этом в каждом случае можно указать активную периферию. В отдельном списке предлагается выбрать тип используемой батареи из имеющихся в базе данных или задать параметры другой батареи. Таким образом, можно создать полный профиль энергетической конфигурации устройства, сформировать отчет и сохранить его в одном из наиболее удобных форматов.

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

После завершения настройки проекта (рисунок 7) разработчик генерирует на базе созданной конфигурации программный код на языке С. Он пригоден к использованию с рядом IDE, включая System Workbench for STM32 (SW4STM32) MDK-ARM, EWARM, TrueSTUDIO. Выбор среды IDE доступен через меню: Project → Settings, далее – в окне, раскрывающемся под строкой Toolchain/IDE. В этом же окне доступна для редактирования строка с названием вашего проекта (Project Name) и строка его расположения.

Рис. 7. Настройка генератора проекта в STM32CubeMX

Рис. 7. Настройка генератора проекта в STM32CubeMX

Исходное место расположения для копируемых в проект библиотек (так называемый репозиторий) по умолчанию после установки STMCubeMX находится на диске С в папке «Мои документы». Откуда его (папка “Repository”) при желании можно переместить в любое более удобное для вас место, не забыв при этом сделать соответствующие изменения в настройках программы STM32CubeMX через меню Help → Updater Settings.

Далее, в Project Settings меню “Project” необходимо перейти на вкладку “Code Generator” для того чтобы выбрать необходимые опции генерации. Здесь имеется трехпозиционный переключатель варианта использования библиотек встраиваемого ПО. Наиболее оптимален вариант по умолчанию – копирование необходимых библиотек в папку проекта. Ниже, в группе “Generated Files” следует отметить первую и вторую строки для генерации файлов инициализации МК в форматах “.c” и “.h”, а также для сохранения при повторной генерации прежних файлов в качестве резервных.

При доработке ранее выполненных проектов разработчику остается лишь сделать в нем необходимые дополнения, проверить корректность конфигурации и повторить генерацию финального кода проекта. Для этого нужно в меню “Project” выбрать пункт “Generate Code”, либо Ctrl+Shift+G, или просто нажать соответствующий символ в строке инструментов. Полученный код сохраняется на компьютере и может быть использован в других проектах.

Если все было выполнено без ошибок, проект должен корректно открыться для дальнейшего редактирования в соответствующей среде разработки прикладного ПО. Код инициализации для STM32, генерируемый на языке C, может быть использован с компиляторами IAR, Keil и GCC.

AC6 System Workbench for STM32 – среда для разработки ПО микроконтроллеров STM32

Свободно распространяемая интегрированная среда AC6 System Workbench for STM32, созданная компанией STMicroelectronics совместно с партнерами, предназначена для разработки прикладного программного обеспечения оборудования на основе микроконтроллеров STM32. Пакет базируется на Eclipse\GCC и полностью бесплатен. Сегодня лишь немногие производители микроконтроллеров создают собственные инструменты для разработки встраиваемого ПО, предоставляя эту деятельность сторонним разработчикам, которые, в основном, предлагают коммерческие версии своих продуктов. Хотя параллельно с коммерческими пакетами средств разработки ПО зачастую имеются и бесплатные варианты. Но они имеют скорее маркетинговое предназначение и, как правило, обладают серьезными ограничениями, зачастую мешающими нормальному процессу разработки. Созданная для микроконтроллеров STM32 бесплатная среда “System Workbench” лишена подобных недостатков и позволяет значительно упростить и ускорить разработку прикладного ПО для микроконтроллеров всего семейства STM32.

Важно и то, что весь пакет SW4STM32 может быть бесплатно загружен с веб-сайта www.openstm32.org, который также включает форумы, блоги и обучающие курсы для технической поддержки разработчиков. Все ресурсы сайта становятся полностью доступными сразу после регистрации пользователя. AC6 System Workbench for STM32 не имеет каких-либо ограничений и отличается удобным в настройке и работе визуальным интерфейсом.

Особенности Workbench for STM32:

  • всеобъемлющая поддержка микроконтроллеров STM32 и плат для разработки Nucleo, Discovery;
  • встроенное ПО для конфигурации STM32 (Standard Peripheral library или Cube HAL);
  • свободный компилятор GCC C/C++;
  • свободный отладчик GNU;
  • работа на платформе IDE Eclipse;
  • совместимость с плагинами для Eclipse;
  • поддержка ST-Link;
  • отсутствие ограничений по размеру исполняемого кода;
  • поддержка Windows, Linux, OSX.

Новый программный инструмент для STM32 имеет и другое, рабочее название – SW4STM32. Он выполнен на основе набора плагинов к популярной среде разработки Eclipse. SW4STM32 может поддерживать программирование многоядерных асимметричных однокристальных систем (SoC), например, Cortex-A и Cortex-M.

System Workbench for STM32 может устанавливаться для работы под Windows или Linux как в качестве дополнения к Eclipse, так и в виде отдельно устанавливаемого пакета. Оба варианта можно свободно скачать на сайте http://www.openstm32.org/ сразу после регистрации.

В среде SW4STM32 обеспечена всесторонняя поддержка микроконтроллеров STM32, оценочных плат и комплектов Nucleo и Discovery с набором периферии, а также библиотек ПО (Standard Peripheral library и Cube HAL). На рисунке 8 схематично представлен состав компонентов SW4STM32 и принцип их взаимодействия.

Рис. 8. Архитектура System Workbench for STM 32

Рис. 8. Архитектура System Workbench for STM 32

SW4STM32 включает в себя все инструменты, необходимые для успешной разработки, и может легко интегрироваться с плагинами для Eclipse. Для работы с периферийными задачами в состав SW4STM32 включены библиотеки SPL и HAL, могут использоваться пользовательские библиотеки, стек USB и RTOS. В составе SW4STM32 имеется встроенный отладчик.

При создании нового проекта вы определяете используемый МК и стандартную плату, с которой намерены работать, либо используете собственный разрабатываемый макет. После этого Workbench for STM32 автоматически извлекает и конфигурирует необходимое встроенное ПО, используя для работы с периферией библиотеки в прежнем формате StdPeriph или новом – HAL. Созданный код инициализации C или C++ готов для редактирования, компилирования и отладки.

Установка System Workbench for STM32

IDE System Workbench for STM32 может быть установлена на платформы: Linux и Microsoft Windows – Vista и более новые версии. При этом на компьютере уже должен быть установлен пакет Java SE JRE 7 или более новые варианты. Минимальные аппаратные требования к компьютеру: 1 Гбайт RAM и 2 Гбайт свободного дискового пространства.

Рассмотрим процесс установки подробнее. Как известно, при этом имеются два варианта. Первый – когда System Workbench for STM32 состоит из набора плагинов для интегрированной среды разработки Eclipse (Juno или Kepler), и ее можно установить поверх этой платформы.

Второй вариант предусматривает отдельную IDE – System Workbench for STM32. Причем вначале предлагается скачать программу-инсталлятор в виде исполняемого файла. Последнюю версию install_sw4stm32_win_64bits-latest.exe всегда можно получить на официальном сайте.

Также необходимо учесть установку драйвера для соединения и работы через интерфейс ST-Link при отладке проекта в составе платы с программатором.

Если после запуска скачанного файла появляется сообщение об отсутствии необходимой версии Java – необходимо нажать “Ok” для того, чтобы система вышла на сайт Oracle для загрузки последней версии Java. Дальнейший процесс установки – достаточно стандартный. В качестве места установки по умолчанию предлагается корневая директория: C:\Ac6\SystemWorkbench, что рекомендуется принять.

В процессе установки или работы с System Workbench for STM32 не требуется постоянный доступ в интернет. Однако соединение с интернетом понадобится для загрузки с сервера www.st.com библиотек STM32 для контроллеров и плат на первом этапе создания проекта, если вы работаете с этими моделями впервые.

После установки и первого запуска System Workbench for STM32 появляется экран приветствия, закрыв который, мы видим разбитый на несколько рабочих зон графический интерфейс пользователя (рисунок 9). В левой вертикальной панели обозревателя в виде отдельных папок размещаются все элементы создаваемых и открываемых проектов.

Рис. 9. Рабочий экран System Workbench for STM32

Рис. 9. Рабочий экран System Workbench for STM32

Вертикальная панель справа включает элементы текущего активного файла (переменные, функции, константы, заголовочные файлы). Это окно удобно для поиска элементов кода в центральной рабочей зоне пользовательского интерфейса, предназначенной для ввода и коррекции исполняемого программного кода.

Впрочем, вид и назначение этой панели можно менять с помощью элементов меню в верхней части, вплоть до полного ее закрытия. Справа, в строке меню основных команд, есть кнопка “Open Percpective”, позволяющая, в дополнение к основному окну С/С++, добавить еще целый ряд вкладок, включая кнопку для переключения рабочего экрана создания проекта С/С++ в режим его отладки (рисунок 10).

Рис. 10. Рабочий экран System Workbench for STM32 в режиме отладки

Рис. 10. Рабочий экран System Workbench for STM32 в режиме отладки

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

Большая панель посредине – это основное поле редактора проекта, в котором создается и редактируется исполняемый код.

Далее рассмотрим практическое применение STM32CubeMX и System Workbench for STM32 в процессе создания простейшего проекта с использованием контроллера STM32, который будет способен управлять мерцанием светодиода, подключенного к одному из выходов МК.

Создание первого проекта

Для решения этой задачи используем МК STM32F746NGH6 в составе отладочной платы STM32F746G-DISCO.

Первым делом создаем проект в STM32CubeMX через меню: File → New Project. В открывающемся окне выбираем контроллер STM32F746NGH6.

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

В нашем простейшем примере мы можем оставить многие настройки по умолчанию, настроив лишь один из портов общего назначения для ввода-вывода (GPIO) во вкладке “Pinout”. Для решения нашей задачи выберем PI1.

Для того чтобы использовать светодиод, подключенный к выводу PI1, нам необходимо выбрать для этого порта режим работы GPIO_Out. Быстрее найти PI1 на обширном контактном поле можно, если ввести это обозначение вывода в окно “Find” (рисунок 11). После этого символизирующий вывод кружок на контактном поле МК начнет мерцать. После выбора вывода с помощью левой кнопки мыши раскрывается меню с доступными для него режимами использования. Выбираем необходимый нам GPIO_Output. В результате цвет вывода меняется на зеленый и на нем появляется изображение кнопки.

Рис. 11. Выбор в STM32CubeMХ используемого вывода микроконтроллера

Рис. 11. Выбор используемого вывода микроконтроллера в STM32CubeMХ

На вкладке Pinout нам также необходимо для последующей прошивки МК разрешить работу с программатором. Для этого в окне обозревателя раскрываем строку “SYS” в разделе “Pereripherals”. В раскрывшемся после этого списке, в окне строки “Debug”, выбираем интерфейс отладки “Serial Wire Debug (SWD)”.

На вкладке тактирования все можно оставить без изменений.

Во вкладке “Configuration” после выбора порта PI1 появляется раздел “GPIO”, где мы можем при необходимости выполнить детальную настройку режима работы порта по выходу и создать метку для этого вывода, например, LED.

Пользоваться калькулятором потребляемой мощности на вкладке “Power Consuption Calculator” в данном случае нет необходимости.

На финальном этапе осталось выбрать название и место размещения проекта на диске компьютера, а также уточнить настройки для процесса генерации кода проекта. Для этого заходим в соответствующий раздел меню: “Project → Settings”.

Здесь, во вкладке “Code Generator” нужно поставить недостающие метки в строках раздела “Generated files”, а также разрешить “Enable Full Assert” для HAL Settings и перевести неиспользуемые выводы в режим минимального энергопотребления.

Во вкладке “Project” нужно дать проекту название (например, ledtest), а также можно выбрать удобное место размещения проекта. Будет лучше, если этот каталог совпадет с рабочим каталогом для System Workbench for STM32.

В строке “Toolchain/IDE” необходимо выбрать следующий рабочий инструмент – SW4STM32. В завершение нажимаем “Ok”.

Все созданные настройки можно будет проконтролировать в отдельном файле, создаваемом после запуска команды: Project → Generate Report. А для генерации кода проекта запускаем финальную операцию: Project →  Generate Code.

На следующем этапе нам необходимо будет импортировать полученный код проекта в среду SW4STM32, добавить в файл исполняемого кода функцию циклического переключения выходного порта PI1, скомпилировать созданный проект и запустить полученный файл для отладки.

Импорт сгенерированного в STM32CubeMX проекта в System Workbench

Открываем “System Workbench for STM32”, с заданием при первом запуске в качестве рабочего пространства каталога, где сохранены рабочие файлы STM32CubeMX. Изменить рабочее пространство можно впоследствии через меню: File → Switch Workspace.

Импортировать созданный в CubeMX проект в окно “Project Explorer” можно через меню: File → Import. В появившемся окне “Import” нужно развернуть раздел “General”, где выбирается строка “Existing Project into Workspace”. После нажатия на кнопку “Next” появляется очередное окно, где в строке “Select root directory” нужно выбрать каталог рабочего файла. В нашем случае это будет C:\workspace\ledtest. После этого в поле “Proejcts:” появляется строка ledtest Configuration и активизируется кнопка “Finish”. После нажатия на нее в окне “Project Explorer” появляется файловая структура импортированного из CubeMX проекта в виде основной папки ledtest Configuration c вложениями (рисунок 12).

Рис. 12. Добавление проекта в SystemWorkbench for STM32

Рис. 12. Добавление проекта в SystemWorkbench for STM32

Настройка проекта для отладки

Теперь наш рабочий код для управления мерцанием светодиода необходимо добавить в файл “main.c”, расположенный в папке “ledtest Configuration\Application\User”.

При этом все дополнительные пользовательские командные строки в этом файле должны размещаться только в промежутке между строками “USER CODE BEGIN x” и “USER CODE END x”. В данном случае добавляем код в структуру оператора “while (1)”.

Для постоянного переключения выходного порта GPIO берем имеющуюся в нашей библиотеке функцию HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin). Найти ее можно через окно обозревателя проектов, открыв папки “Drivers\STM32F7xx_HAL_Driver\stm32f7xx_hal_gpio.c”. Открыв последнюю папку двойным щелчком мыши, мы одновременно раскрываем ее содержимое в центральном окне редактора кода. При этом в правой панели “Outline” появляется удобный перечень ее заголовков для поиска и навигации в центральном окне. Таким образом, мы можем быстро найти функцию HAL_GPIO_TogglePin с кратким описанием здесь же в комментариях. Скопировав отсюда название функции, мы возвращаемся во вкладку “main.c” и вставляем эту функцию в тело оператора “while (1)”, заменив общее описание параметров функции на заданный вывод (1) в составе порта I: (GPIOI,GPIO_PIN_1) (рисунок 13).

Рис. 13. Редактирование “main.c” в “System Workbench”

Рис. 13. Редактирование “main.c” в “System Workbench”

Теперь в процесс переключения нужно добавить задержку, что можно сделать с помощью функции HAL_Delay с аргументом в 500 мс.

На этом создание проектного кода в “System Workbench” завершается. Остается с помощью компилятора получить двоичный файл для отладки созданной программы непосредственно на МК. Не забыв сохранить выполненные изменения в проекте, запускаем компиляцию через Project → Built All (или Control + B). В случае успешного завершения этой операции в структуре папки проекта появляется дополнительная строка “Binaries”. Открыв ее, мы увидим выходной двоичный файл нашего проекта с расширением “.elf”.

Для запуска процесса отладки есть несколько вариантов, включая выделенную кнопку отладки в панели инструментов или F11. Но, для того чтобы любой из них сработал, необходимо в качестве конфигурации отладки указать “As6 STM32 Debugging”. Сделать это можно, в частности, через меню: Run → Debug Settings (рисунок 14), которое доступно через свойства проекта (“Properties”).

Рис. 14. Настройка Run\Debug Settings

Рис. 14. Настройка Run\Debug Settings

Нажимаем кнопку “New” и выбираем из предложенного списка “As6 STM32 Debugging”. Затем через “Ok” закрываем все открытые окна. Если проект к этому времени был скомпилирован, то соответствующий двоичный файл с кодом проекта подключается к конфигурации отладки.

По завершении настройки отладчика можно приступать непосредственно к самому процессу отладки. Но перед этим необходимо к порту USB компьютера подключить плату с контроллером через интерфейс ST-Link. Затем следует убедиться в появлении нашей платы среди подключенной к компьютеру периферии и после этого приступать к отладке.

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

Окно “Debug” позволяет управлять запуском и отладкой программы. В нем отображается фрейм стека для приостановленных потоков отлаживаемой программы. Каждый поток отображается как отдельный узел в общей структуре.

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

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

Заключение

Современные микроконтроллеры, включая предлагаемое компанией STMicroelectronics семейство STM32, обладают высочайшей производительностью и расширенными функциональными возможностями. Они позволяют создавать широкий спектр разнообразных устройств и встраиваемых систем. Однако их освоение порой вызывает определенные затруднения и требует для этого серьезных временных ресурсов. Ускорить и упростить эти процессы помогают новые программные инструменты, в числе которых – STM32CubeMX и System Workbench for STM32. Учитывая свободный доступ к этим инструментам и активную поддержку пользователей со стороны производителей, можно надеяться, что они займут достойное место средств разработки в арсенале специалистов, найдут широкое применение в повседневной практике любителей.

Литература

  1. http://www.openstm32.org/Importing+a+STCubeMX+generated+project?structure=Documentation
  2. http://www.compel.ru/wordpress/wp-content/uploads/2015/11/Webinar_final.pdf
  3. http://www.openstm32.org/System+Workbench+for+STM32?structure=Documentation
  4. http://www.st.com/st-web-ui/static/active/en/resource/technical/document/user_manual/DM00104712.pdf.

ST_STM32L4_NE_02_16

Получение технической информации, заказ образцов, заказ и доставка.

Компании Semtech и STMicroelectro­nics вместе развивают технологию LoRa® для «Интернета вещей» (IoT)

Semtech Corporation, ведущий поставщик полупроводников аналоговых и смешанных сигналов, и STMicroelectronics, мировой лидер полупроводниковой электроники, объявили о заключении соглашения по реализации беспроводной радиочастотной технологии дальнего действия Semtech LoRa®. ST намерен использовать эту технологию с ориентиром на операторов мобильной связи, которые заинтересованы в построении крупномасштабных частных сетей. ST присоединится к альянсу компаний LoRa (LoRa Alliance) и сделает опорную разработку решения LoRa на основе своего семейства микроконтроллеров STM32. В дальнейшем планируется разработка микроконтроллеров с интегрированной технологией LoRa, поддерживающей стандартный протокол LoRaWAN™. Semtech и ST будут сотрудничать в интеграции технологии LoRa на несколько платформ, ориентированных на приложения некоторых из бизнес-проектов LoRa.

LoRa Alliance и экосистема LoRa – самый быстрорастущий альянс в секторе IoT, и добавление ресурсов ST поможет стандартизировать LoRa и LoRaWAN по всему миру для IoT-сетей на основе радиочастотных приемопередатчиков малой мощности, работающих на больших расстояниях (LPWAN). Обе компании верят в то, что стандартизация и поддержка мощной экосистемы будут способствовать признанию технологии всеми участниками рынка и достижению прогнозируемых больших объемов выпуска IoT-устройств.

«Успех технологии LoRa послужил толчком для принятия операторами всего мира решения о развертывании национальных сетей LoRaWAN», – заявил Марк Пегулу, вице-президент и генеральный менеджер группы беспроводных продуктов компании Semtech, – «Партнерские отношения с ведущим поставщиком чипов для технологии LoRa, компанией ST, укрепляют уверенность в том, что технология LoRa компании Semtech, протокол LoRaWAN, IP и чипсет станут де-факто стандартом в области беспроводных сетей «Интернета Вещей».

•••

Наши информационные каналы

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее