打印

求GD32F130C6T6使用16M晶振的时钟配置

[复制链接]
900|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ycb83523|  楼主 | 2022-3-4 21:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用的是GD32F130C6T6芯片,晶振用的是16M,但是不管怎么配置时钟始终有问题,延时均使用官方例程,无论如何delay_1ms(1000) 也不能达到1秒延时,只能延时500,且非常不准,请教大神该如何配置
配置如下,设置晶振为16M
#define HXTAL_VALUE    ((uint32_t)16000000)

启用的是48M
#define __SYSTEM_CLOCK_72M_PLL_HXTAL         (uint32_t)(48000000)

分频配置如下
RCU_CFG0 |= RCU_AHB_CKSYS_DIV1;
RCU_CFG0 |= RCU_APB2_CKAHB_DIV1;
RCU_CFG0 |= RCU_APB1_CKAHB_DIV1;
RCU_CFG0 &= ~(RCU_CFG0_PLLSEL | RCU_CFG0_PLLMF | RCU_CFG0_PLLDV);
RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLL_MUL6);

使用特权

评论回复
沙发
呐咯密密| | 2022-3-7 10:22 | 只看该作者
本帖最后由 呐咯密密 于 2022-3-7 11:07 编辑

例程用的晶振是8M,所以倍频器使用RCU_PLL_MUL6达到48M,如果你将晶振修改成16M,那么在分频器中就需要将输入时钟进行二分频,而你的代码中未作任何设置,这就导致你的主频已经达到了96M,你的延时自然就打了个对折,可将你贴出的代码最后一行修改成如下:
RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_PLLPREDV_DIV2 | RCU_PLL_MUL6);

使用特权

评论回复
评论
ycb83523 2022-8-7 21:17 回复TA
大佬厉害啊,感谢感谢,被这些宏整懵了 
板凳
单片小菜| | 2022-3-7 10:59 | 只看该作者
直接分频就可以了,不用购买新的吧。

使用特权

评论回复
地板
tpgf| | 2022-4-2 15:27 | 只看该作者
有这个分频系数吗

使用特权

评论回复
5
木木guainv| | 2022-4-2 15:39 | 只看该作者
这是一个整倍数

使用特权

评论回复
6
磨砂| | 2022-4-2 15:47 | 只看该作者
这个应该分频还是倍频啊

使用特权

评论回复
7
晓伍| | 2022-4-2 16:00 | 只看该作者
可以换晶振吗

使用特权

评论回复
8
八层楼| | 2022-4-2 16:11 | 只看该作者
这个很容易做到

使用特权

评论回复
9
观海| | 2022-4-2 16:15 | 只看该作者
直接六倍频了

使用特权

评论回复
10
观海| | 2022-4-2 16:23 | 只看该作者
突然想问问  有几种六倍频的方式呢

使用特权

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

本版积分规则

2

主题

7

帖子

0

粉丝