修改gd32f305时钟

如题,移植GD32F305芯片驱动,修改时钟的方法。

硬件外部时钟为8MHz,官方demo文件为25MHz,基于此修改时钟配置。

1、选择system_gd32f30x.c并修改

如下图

1.1)注意查看 __HXTAL  的时钟是否为硬件电路对应的实际大小。

比如GD32F30x CL系列demo的时钟是25MHz,,你就需要手动改成8MHz(具体定义在gd32f30x.h文件中)。

 1.2)修改时钟配置,如system_clock_120m_hxtal函数

 如下是Cubemx的时钟配置图

 

结合Cubemx的时钟配置图来看,箭头所指的是开关配置项,这一点不需要改动。

圆圈所指的是分频和倍频项,需要修改。

Perdiv1是指HSE外部时钟送到PLL1的输入时钟,由于F305无法选择8*15的倍频,所以输入时钟要分频为4MHz,然后倍频30倍得到120MHz时钟。  --即Perdiv1要2分频,PllMul要30倍频。

再结合代码来看:

 下图是demo文件的原始配置

 下图是修改后的配置

代码逻辑是,先将寄存器RCU_CFG0清零,再置位,然后将寄存器RCU_CFG1清零再置位。

RCU_CFG0寄存器是先使能外部时钟,然后30倍频。

RCU_CFG1,由于demo文件是25MHz,由如下公式:CK_PREDIV0 = (CK_HXTAL)/5 *8 /10 = 4 MHz 得到输入时钟。改成8MHz,修改公式对应配置项为 CK_PREDIV0 = (CK_HXTAL)/16 *8 /1 = 4 MHz 即可。

猜你喜欢

转载自blog.csdn.net/weixin_38743772/article/details/130965733