void SystemClock_Config(void) {
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
// 配置时钟源(例如HSE)
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6; // 根据需求调整倍频
HAL_RCC_OscConfig(&RCC_OscInitStruct);
// 配置系统时钟和总线时钟
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // AHB无分频
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; // APB1无分频
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; // APB2无分频
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_WS); // 根据频率设置Flash延迟
}
|