打印

GD32E230的时钟系统配置详解

[复制链接]
61|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
4c1l|  楼主 | 2025-2-21 21:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
GD32E230的时钟系统主要包括内部时钟(HSI)、外部晶振(HSE)和PLL(相位锁定环)。正确配置时钟源和时钟分频对于系统的稳定性和性能至关重要。以下是GD32E230时钟配置的简洁步骤:

1. 时钟源配置
内部时钟(HSI)
默认情况下,GD32E230启动时使用内部高速时钟(HSI),频率为8 MHz。
外部晶振(HSE)
如果使用外部晶振(HSE),则需要手动配置并启用外部时钟源。
配置步骤
c
复制
编辑
// 启用外部晶振 (HSE)
rcu_periph_clock_enable(RCPU_RCU_HSE);  // 开启HSE时钟
while (RESET == rcu_flag_get(RCU_FLAG_HSERD)) { } // 等待HSE稳定

// 选择时钟源为HSE(外部晶振)
rcu_system_clock_source_select(RCU_SCS_HSE);
2. PLL配置
PLL(相位锁定环)用于通过外部时钟源(HSE或HSI)进行频率合成,提供更高的系统时钟。

配置PLL为HSE输入:
c
复制
编辑
// 配置PLL,HSE作为PLL源,倍频因子为6(假设你需要48MHz)
rcu_pll_config(RCU_PLLSRC_HSE_DIV1, RCU_PLL_MUL6);  // 设置PLL源为HSE,倍频因子6
rcu_pll_enable();  // 启用PLL
while (RESET == rcu_flag_get(RCPU_FLAG_PLLRDY)) { }  // 等待PLL稳定
3. 系统时钟选择
配置完成后,需要选择PLL作为系统时钟源。

c
复制
编辑
// 设置系统时钟为PLL
rcu_system_clock_source_select(RCPU_SCS_PLL);
while (rcu_system_clock_source_get() != RCPU_SCS_PLL) { }  // 等待PLL稳定
4. 时钟分频
你可以通过配置APB1和APB2总线时钟分频来调整外设时钟。例如,APB1的时钟可以通过以下方式配置:

c
复制
编辑
// 配置APB1总线时钟分频为2(分频后时钟频率为系统时钟/2)
rcu_apb1_clock_div_config(RCPU_APB1_DIV2);
5. 配置时钟源和分频器的注意事项:
时钟源:选择内部时钟(HSI)或外部时钟(HSE)时,要确保源时钟稳定。
PLL倍频:确保PLL倍频值符合芯片的最大频率限制。
时钟分频:合理配置APB1、APB2的时钟分频,以确保外设时钟不超过最大工作频率。
示例:外部晶振HSE,PLL倍频,系统时钟配置为48 MHz
c
复制
编辑
void clock_config(void) {
    // 启用HSE
    rcu_periph_clock_enable(RCPU_RCPU_HSE);
    while (RESET == rcu_flag_get(RCPU_FLAG_HSERD)) {}

    // 配置PLL源为HSE,倍频因子为6
    rcu_pll_config(RCPU_PLLSRC_HSE_DIV1, RCPU_PLL_MUL6);
    rcpu_pll_enable();
    while (RESET == rcpu_flag_get(RCPU_FLAG_PLLRDY)) {}

    // 选择PLL作为系统时钟
    rcpu_system_clock_source_select(RCPU_SCS_PLL);
    while (rcpu_system_clock_source_get() != RCPU_SCS_PLL) {}
}
这样,你就能确保系统时钟工作在正确的频率下,且外设和总线时钟也能正确配置。

使用特权

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

本版积分规则

60

主题

612

帖子

2

粉丝