Когда вы работали с STM32 CubeMX вы быстро выставляли мышкой источник тактирования, выбирали делители для шин. Осмелюсь предположить, что вы могли тупо задать частоту HCLK и позволить кубу самостоятельно настроить за вас систему тактирования! Куб очень полезный и очень опасный инструмент, без него начинает казаться, что тактирование ручками настроить вообще не реально. Но это не так и вы в этом убедитесь, конечно же. В микроконтроллерах на базе ядра ARM Cortex-M непростая система тактирования, на первый взгляд. Но стоит лишь один раз во всем разобраться и сразу станет не так страшно. Чтобы ядро процессора функционировало, ему нужен источник тактовых сигналов, чтобы периферия (GPIO, UART, SPI, АЦП и т.д.) функционировала - ей тоже нужно тактирование! Наверное я обрадую вас, сказав, что этот урок можно вообще пропустить, ведь по умолчанию, ядро УЖЕ работает на частоте 8 МГц. Но если хотите вникать по полной, то добро пожаловать под кат* (*вид вечнозелёных кустарников из семейства бересклетовых). Я напомню, что в этом цикле уроков работаем мы с микроконтроллером STM32F103C6T6.