GD32E103怎么使用外部晶振配置到时钟120M?

[复制链接]
2434|9
 楼主| yelong98 发表于 2020-11-17 20:47 | 显示全部楼层 |阅读模式
如题,下载了官方的demo,进入main函数没看见有初始化配置时钟的部分,但是却能打印出系统时钟是120Mhz,有摸索过的老铁,如果有空劳您宝贵时间给解答一二
    /* configure systick */
    systick_config();

    /* initilize the LEDs, USART and key */
    /* enable the led clock */
    rcu_periph_clock_enable(RCU_GPIOB);
    /* configure led GPIO port */
    gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_12);

    gpio_bit_write(GPIOB,GPIO_PIN_12,SET);
       
    gd_eval_com_init(EVAL_COM0);
    /* print out the clock frequency of system, AHB, APB1 and APB2 */
    printf("\r\nCK_SYS is %d", rcu_clock_freq_get(CK_SYS));
    printf("\r\nCK_AHB is %d", rcu_clock_freq_get(CK_AHB));
    printf("\r\nCK_APB1 is %d", rcu_clock_freq_get(CK_APB1));
    printf("\r\nCK_APB2 is %d", rcu_clock_freq_get(CK_APB2));
main函数在这了,这里打印的信息看到时钟是120Mhz,但是main函数没有任何配置时钟的代码,怎么就直接配置到了120M呢?
castle520 发表于 2020-11-17 21:44 | 显示全部楼层
你好,GD32的时钟配置在system_gd32e10x.c文件里面
326d93be3c6a238c3bfeb2635f298fe.png
如果使用内部8M晶振,或是外部8M晶振的话,直接修改这里的宏定义就可以了,如图就是使用外部8M晶振配置120M主频

如果是使用其他频率的外部晶振则需要根据时钟树进行配置了,这里有需要的话可以联系我
 楼主| yelong98 发表于 2020-11-17 22:10 来自手机 | 显示全部楼层
castle520 发表于 2020-11-17 21:44
你好,GD32的时钟配置在system_gd32e10x.c文件里面

如果使用内部8M晶振,或是外部8M晶振的话,直接修改这 ...

太感谢了,就是这里配置的
sonicll 发表于 2020-11-18 08:55 | 显示全部楼层
MCU启动后不是直接执行main函数的,先执行的是startup.s,这个文件调用了SystemInit函数,这里配置了系统时钟
答案很长吧 发表于 2020-11-18 09:51 | 显示全部楼层
没有太看明白代码,可以解释一下吗?
guanjiaer 发表于 2020-12-4 12:23 | 显示全部楼层
本身支持的最大时钟频率是多少啊
heimaojingzhang 发表于 2020-12-4 12:25 | 显示全部楼层
没有配置 那就是使用的默认的配置
keaibukelian 发表于 2020-12-4 12:27 | 显示全部楼层
楼主怎么知道是120M的呢
labasi 发表于 2020-12-4 12:29 | 显示全部楼层
可以在单步运行的时候看看寄存器的状态进行判断
paotangsan 发表于 2020-12-4 12:31 | 显示全部楼层
可以看一下寄存上 默认的是什么状态 算一下就知道了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

108

帖子

0

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