[研电赛技术支持] linux开发GD32F4单片机-Cmake裸机工程-系统时钟配置

[复制链接]
1326|0
观海 发表于 2025-9-8 12:11 | 显示全部楼层 |阅读模式
创建系统初始化文件

8400768be576f2cc0f.png


文件内容如下:

#include "bsp_system_clock.h"

/**
* @brief 系统时钟初始化
*
* @return true 初始化成功
* @return false 初始化失败
*/
bool bsp_system_clock_config(void){
    rcu_deinit();
    rcu_osci_on(RCU_HXTAL);
    if(rcu_osci_stab_wait(RCU_HXTAL) != SUCCESS){
        init_irc16:
        rcu_deinit();
        rcu_osci_on(RCU_IRC16M);
        if(rcu_osci_stab_wait(RCU_IRC16M) != SUCCESS){
            return false;
        }
        rcu_pll_config(RCU_PLLSRC_IRC16M,16,480,2,10);
    }
    else{
        switch (HXTAL_VALUE){
            case (uint32_t)(800000):
                rcu_pll_config(RCU_PLLSRC_HXTAL,8,480,2,10);
                break;
            case (uint32_t)(16000000):
                rcu_pll_config(RCU_PLLSRC_HXTAL,16,480,2,10);
                break;
            case (uint32_t)(25000000):
                rcu_pll_config(RCU_PLLSRC_HXTAL,25,480,2,10);
                break;
            default:
                goto init_irc16;
                break;
        }
    }
    rcu_ahb_clock_config(RCU_AHB_CKSYS_DIV1);
    rcu_apb1_clock_config(RCU_APB1_CKAHB_DIV4);
    rcu_apb2_clock_config(RCU_APB2_CKAHB_DIV2);
    rcu_osci_on(RCU_PLL_CK);
    if(rcu_osci_stab_wait(RCU_PLL_CK) != SUCCESS){//等待时钟稳定
        while(1){;}
    }
    rcu_system_clock_source_config(RCU_CKSYSSRC_PLLP);//配置内核时钟源为PLL倍频出来的
    while(0U == (RCU_CFG0 & RCU_SCSS_PLLP)){
        ;
    }
    rcu_clock_freq_get(CK_SYS);
    rcu_clock_freq_get(CK_AHB);
    rcu_clock_freq_get(CK_APB1);
    rcu_clock_freq_get(CK_APB2);
    SysTick_Config(SystemCoreClock/1000);
    NVIC_SetPriority(SysTick_IRQn, 0x00U);
    rcu_periph_clock_enable(RCU_GPIOA);
    rcu_periph_clock_enable(RCU_GPIOH);
    return true;
}


配置文件修改如下:

5639368be576773d7b.png


————————————————
版权声明:本文为CSDN博主「yang_arvin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yang_arvin/article/details/151231495

您需要登录后才可以回帖 登录 | 注册

本版积分规则

147

主题

4359

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部