Список поддерживаемых микроконтроллеров STM32 значительно увеличен. Их число превышает тысячу и я ограничусь перечислением семейств МК. Это STM32F0, STM32F1, STM32F2, STM32F3, STM32F4, STM32F7, STM32H7, STM32L0, STM32L1, STM32L4, STM32L4+, STM32L5, STM32G0, STM32G4 и STM32WB.
На данный момент это все существующие модели STM32 исключая семейство STM32MP1 (гибрид Cortex-A7 и Cortex-M4).
В этом обновлении интерфейс мастера создания проекта немного изменился по сравнению в оригинальным. Вкратце рассмотрим основные шаги.
Проект создается из меню File -> New -> Project.
Обновление добавляет тип проекта STM32. Выбираем его и приступаем к созданию проекта нажав на кнопку Go.
Следующим шагом требуется ввести имя проекта и выбрать место расположения на диске.
В следующем окне предлагается выбрать компилятор и настроить цели сборки. Оставляем значения по умолчанию.
После предлагается выбрать семейство МК. Для теста выберем STM32F4.
Далее следует выбрать серию. У меня в наличии отладочная плата с STM32F407ZET6 и поэтому выбрал STM32F407_417.
В следующем окне нам предлагается выбрать в списке модель микроконтроллера. Как вы наверное уже догадались я выбрал STM32F407ZE.
Кратко о других настройках.
Опция Add DebugRAM target добавит в проект отладочную цель сборки с выполнением кода из ОЗУ. Это не только уменьшает износ Flash-памяти, но и ускоряет запуск отладки за счет отсутствия затрат времени на стирание Flash-памяти и запись в нее. Но в микроконтроллере должно быть достаточно ОЗУ для кода и данных.
В списке Debugger output выбирается метод вывода отладочных сообщений функцией printf или ей подобной. Возможно использование Semihosting или EB monitor.
В списках ниже задается тип проекта (C или C++) и выбирается периферийная библиотека. Возможные варианты SPL, HAL и LL. Также можно вовсе не использовать периферийную библиотеку и в проект будет добавлена только CMSIS.
Нажатие кнопки Finish запустит создание проекта. По завершению на экране появится окно настройки отладчика.
Обычно настройки изменять не требуется и закрываем окна кнопкой OK.
Если было разрешено создание цели DebugRAM, аналогичное окно появится и для нее.
На этом создание проекта завершено.
Для проверки обновления напишем какую-то прогу. По традиции это будет мигание светодиодом.
Открываем файл main.c.
В проект включена библиотека SPL. Используем ее для инициализации порта и изменения логического уровня на нем для мигания светодиода.
Получился код (классика, ничего необычного).
#include "main.h"int main(void){ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE); GPIO_InitTypeDef g = {.GPIO_Pin = GPIO_Pin_10, .GPIO_Mode = GPIO_Mode_OUT, .GPIO_OType = GPIO_OType_PP, .GPIO_PuPd = GPIO_PuPd_NOPULL, .GPIO_Speed = GPIO_Speed_50MHz}; GPIO_Init(GPIOF, &g); while(1) { GPIOF->ODR ^= GPIO_ODR_ODR_10; for (volatile uint32_t i=0; i<2000000; i++); }}
Заливаем и смотрим как мигает светодиод подключенный к PF10 (на китайской отладочной плате с STM32F407ZET6 он подключен к этому выводу).
Проект разместил на файлообменнике dropmefiles.com/EhWzz
На случай недоступности форума EmBitz продублирую ссылки здесь.
Обновление библиотеки www.dropbox.com/s/upmp6r1fuqltrzp/UpdateLib_1.0_For_EmBitz_1.11.zip
GDB сервер EBlink www.dropbox.com/s/fefp18w932vxii7/EBlink_2.8_For_EmBitz_1.11.zip
Для установки распакуйте архивы в папку с EmBitz.
Итог.
Обновление годное. Протестировано мной на десятке микроконтроллеров разных семейств и серий. Багов не обнаружено.
И в завершении мое личное мнение о IDE EmBitz.
В отличие от среды Eclipse и ее производных (к ним относятся большинство бесплатных IDE для STM32) неспешно работающих и требующих для комфортной работы достаточно мощный ПК, IDE EmBitz основана на среде Code::Block и менее требовательна к ПК.