自学自记:
别找其它资料了,坑我已经踩过了,这就是最简单的方式:
GD32F305 CL由25MHz修改为8MHz
第一步
详细说明:
移植GD32F305芯片驱动,修改时钟的方法。
硬件外部时钟为8MHz,官方demo文件为25MHz,基于此修改时钟配置。
1、选择system_gd32f30x.c并修改
注意查看 __HXTAL 的时钟是否为硬件电路对应的实际大小。
比如GD32F30x CL系列demo的时钟是25MHz,,你就需要手动改成8MHz(具体定义在gd32f30x.h文件中)。
1.2)修改时钟配置,如system_clock_120m_hxtal函数
结合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 即可。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u011878611/article/details/147670678
|