配置 72MHz 系统时钟(F103)
RCC_OscInitTypeDef osc = {0};
osc.OscillatorType = RCC_OSCILLATORTYPE_HSE;
osc.HSEState = RCC_HSE_ON; // 外部8MHz
osc.PLL.PLLState = RCC_PLL_ON;
osc.PLL.PLLSource = RCC_PLLSOURCE_HSE;
osc.PLL.PLLMUL = RCC_PLLMUL9; // 8×9 = 72MHz
HAL_RCC_OscConfig(&osc);
RCC_ClkInitTypeDef clk = {0};
clk.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK |
RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
clk.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
clk.AHBCLKDivider = RCC_SYSCLK_DIV1; // 72
clk.APB1CLKDivider = RCC_HCLK_DIV2; // 36MHz
clk.APB2CLKDivider = RCC_HCLK_DIV1; // 72MHz
HAL_RCC_ClockConfig(&clk, FLASH_LATENCY_2);