打印

GD32F103RCT6外部晶振能改成25M吗?

[复制链接]
5026|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
编号10086|  楼主 | 2021-7-19 15:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
GD32F103的外部晶振能用25M的吗?
我官方的例程看了一下,是8M的晶振,我把 HXTAL_VALUE改成了25M,但是时钟初始化一直过不去,卡在
    /* wait until PLL is stable */
    while(0U == (RCU_CTL & RCU_CTL_PLLSTB)){
    }

这句话中

使用特权

评论回复
沙发
sonicll| | 2021-7-20 09:00 | 只看该作者
你需要把PLL倍频也修改一下,之前是(8M/2)* 27 = 108M,你现在可以改成(25M/2)* 8 = 100M试试

使用特权

评论回复
板凳
编号10086|  楼主 | 2021-7-21 17:12 | 只看该作者
sonicll 发表于 2021-7-20 09:00
你需要把PLL倍频也修改一下,之前是(8M/2)* 27 = 108M,你现在可以改成(25M/2)* 8 = 100M试试 ...

我试了,不能用25M的,25M的不行,换成12M的,改PLL倍频和HSE宏定义就可以了

使用特权

评论回复
地板
编号10086|  楼主 | 2021-7-21 17:23 | 只看该作者
sonicll 发表于 2021-7-20 09:00
你需要把PLL倍频也修改一下,之前是(8M/2)* 27 = 108M,你现在可以改成(25M/2)* 8 = 100M试试 ...

貌似只能支持4-16M的外部晶振

使用特权

评论回复
5
紫气东升| | 2022-3-3 16:26 | 只看该作者
如果是使用GD32F4XX芯片:
在system_gd32f4xx.c文件开头定义有以下宏:
/* system frequency define */
#define __IRC16M          (IRC16M_VALUE)            /* internal 16 MHz RC oscillator frequency */
#define __HXTAL           (HXTAL_VALUE)             /* high speed crystal oscillator frequency */
#define __SYS_OSC_CLK     (__IRC16M)                /* main oscillator frequency */

/* select a system clock by uncommenting the following line */
//#define __SYSTEM_CLOCK_IRC16M                   (uint32_t)(__IRC16M)
//#define __SYSTEM_CLOCK_HXTAL                    (uint32_t)(__HXTAL)
//#define __SYSTEM_CLOCK_120M_PLL_IRC16M          (uint32_t)(120000000)
//#define __SYSTEM_CLOCK_120M_PLL_8M_HXTAL          (uint32_t)(120000000)
//#define __SYSTEM_CLOCK_120M_PLL_25M_HXTAL       (uint32_t)(120000000)
//#define __SYSTEM_CLOCK_168M_PLL_IRC16M          (uint32_t)(168000000)
//#define __SYSTEM_CLOCK_168M_PLL_8M_HXTAL        (uint32_t)(168000000)
//#define __SYSTEM_CLOCK_168M_PLL_25M_HXTAL       (uint32_t)(168000000)
//#define __SYSTEM_CLOCK_200M_PLL_IRC16M          (uint32_t)(200000000)
//#define __SYSTEM_CLOCK_200M_PLL_8M_HXTAL        (uint32_t)(200000000)
#define __SYSTEM_CLOCK_200M_PLL_25M_HXTAL         (uint32_t)(200000000)
板子上使用多少M的晶振,就将哪个宏开放出来。我的板子使用25M的,所以我将25M的宏开放出来。
同时,修改HXTAL_VALUE的值为晶振大小,我的板子使用25M的,所以HXTAL_VALUE改为(uint32_t)25000000

使用特权

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

本版积分规则

15

主题

76

帖子

0

粉丝