打印
[STM32F2]

使用STM32CubeMX自动配置STM32 的时钟系统

[复制链接]
697|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
米多0036|  楼主 | 2024-12-6 11:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下载并安装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);
}

使用特权

评论回复
沙发
而服务器人| | 2024-12-31 23:26 | 只看该作者
时钟的设置直接影响到系统的稳定性和性能。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

1426

帖子

0

粉丝