下载并安装STM32CubeMX:
从ST官网获取STM32CubeMX工具,并安装。
创建新项目:
打开STM32CubeMX,选择你的目标芯片或开发板(如STM32F103C8T6)。
配置时钟系统:
在CubeMX界面中,点击 "Clock Configuration" 选项卡。
根据需求选择时钟源:
如果使用外部晶振(HSE),设置晶振频率(如8MHz)。
如果使用内部时钟(HSI),选择HSI。
启用PLL并设置倍频系数(如8倍使得时钟从8MHz变成64MHz)。
检查系统时钟频率(SYSCLK)、AHB、APB的分频系数。
生成代码:
点击“Project Manager”,选择代码生成路径。
点击“Generate Code”,自动生成包含时钟配置的代码。
查看生成的代码:
在生成的代码中,时钟配置位于 system_stm32xx.c 或 main.c 中,常见配置如下:
c
复制代码
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_MUL9; // 倍频9倍
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;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);
}
|