问答

汇集网友智慧,解决技术难题

21ic问答首页 - 请问GD32F20x怎么修改晶振频率

syste sy ST hz 晶振 gd32f20x

请问GD32F20x怎么修改晶振频率

zhugean2024-05-28
请问GD32F20x怎么修改晶振频率,system_gd32f20x.c中好像是按25MHz的晶振来配置的,怎么修改成别的频率,谢谢。
回答 +关注 9
3376人浏览 8人回答问题 分享 举报
8 个回答
  • system_gd32f20x.c中好像是按25MHz的晶振来配置
  • system_gd32f20x.c文件中的时钟配置部分通常包括晶振的初始化以及系统时钟源的设置。
  • 在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==搞定!



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