Что-бы приступить к программированию нарисуем схему - будет удобнее. Давно использую упрощенную посегментную индикацию - меньше деталей (заказчики вынуждают) да и лень паять 12 резисторов и 4 транзистора. Попробуем и здесь применить.
Поскольку первый проект должен быть "хэлло ворлд" (мигание светодиодом) а у нас в индикаторе есть два отдельных светодиода (точечки) - будем мигать точками.
Запускаем приложение CubeMX. Нажимаем создать проект. Выбираем наш микроконтроллер.
Слева видим список внутренней периферии (впечатляет), справа наш микроконтроллер в графическом виде. Клацаем на нужных нам ногах микроконтроллера (B11 и B12) и настраиваем на вывод.
Идем в Configuration и жмем GPIO - делаем опять настройки.
Идем Clock configuration и настраиваем тактовую частоту микроконтроллера на максимум 48 МГц (за что деньги плачены) включаем PLL x 12 - круто, обгоним стареньких.
Идем в меню Project -> Settings настраиваем пути и имя проекта.
Нажимаем в меню Project -> Generate code - куб начинает думать (медленно - на джаве написан) и наконец рапортует о создании проекта и предлагает открыть - открываем, запускается Keil (или что вы выбрали). Смотрим - все красиво в проекте разложено по папкам. Компилируем - все прекрасно компилируется. Запускаем дебаг и все запускается - настроено уже сразу под STLink. И так все внутри, в том числе и порты настроены, осталось написать код для мигания:
добавим три строчки кода:
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_12); // делаем единицу на В12
//бесконечный цикл
while (1)
{
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_11); // инвертируем пин В11
HAL_Delay(500); // задержка 500 мс
}
Проверяем в железе и о чудо - все мигает. Ура.

