Что-бы приступить к программированию нарисуем схему - будет удобнее. Давно использую упрощенную посегментную индикацию - меньше деталей (заказчики вынуждают) да и лень паять 12 резисторов и 4 транзистора. Попробуем и здесь применить.

/ClockARM_Schematic.zip

Поскольку первый проект должен быть "хэлло ворлд" (мигание светодиодом) а у нас в индикаторе есть два отдельных светодиода (точечки) - будем мигать точками.
Запускаем приложение 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 мс
 }
 Проверяем в железе и о чудо - все мигает. Ура.