打印

请问GD32F20x怎么修改晶振频率

[复制链接]
1656|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhugean|  楼主 | 2024-5-28 09:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问GD32F20x怎么修改晶振频率,system_gd32f20x.c中好像是按25MHz的晶振来配置的,怎么修改成别的频率,谢谢。

使用特权

评论回复
沙发
sunriverYao| | 2024-6-4 01:27 | 只看该作者

请问GD32F20x怎么修改晶振频率

大多数厂商启动函数直接运行
        LDR     R0, =__main        BX      R0
但是,GD的却先跑  

        LDR     R0, =SystemInit   BLX     R0
再跑
        LDR     R0, =__main        BX      R0      
    所以,先修改SystemInit(void)函数,及其调用的函数  system_clock_config(void)。如果你要的频率,接近哪个频点,就自己增加一个...
如,110592000MHz, 我们就增加(开放):
    #define __SYSTEM_CLOCK_110M_PLL_HXTAL            110592000UL         //在该文件前面几行!

    后续编译程序预处理,自己调用:
    ////~~~~

    #elif defined (__SYSTEM_CLOCK_110M_PLL_HXTAL)
    system_clock_110m_hxtal();
    ......
    我们复制已有的“108MHz”情况的函数为“110MHz”函数,并修改相关参数:          //注:110非常接近108MHz。

    SystemCoreClock = __SYSTEM_CLOCK_110M_PLL_HXTAL;
    ......
    换掉晶振,可能换掉匹配电容(5pF~)。    上电,示波器观察xin/xout脚:振荡==OK==搞定!


使用特权

评论回复
板凳
FranklinUNK| | 2024-6-20 19:52 | 只看该作者
分频系数调一下就行了

使用特权

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

本版积分规则

1

主题

1

帖子

1

粉丝