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) {}
}
这样,你就能确保系统时钟工作在正确的频率下,且外设和总线时钟也能正确配置。
|