GD32f103 8M晶振改12M , 要修改的地方

手里的单片机是gd32f103ret6,晶振和官方库默认的8M不一致,导致串口乱码。

网上找了好久全是STM32的例子,不过还是有参考意义的。

以下是gd32f10x 的设置方式。

 

1.Keil中的Target设置:

PS:这一项好像会自动设置,安全起见检查一下
 

GD32f103 8M晶振改12M , 要修改的地方

 

2. "gd32f10x.h" 中的  HXTAL_VALUE 修改。

注意:gd32f10x.h默认是只读的,需要到资源管理器中取消只读属性才能修改

PS:这一项极其重要,不修改会导致串口等波特率设置不对。

GD32f103 8M晶振改12M , 要修改的地方

 

3.倍频系数修改

PS:这一项对串口是否乱码无影响,但影响单片机的工作频率。

有两种选择(感觉 plan B更方便一些):

plan A:  修改 "system_gd32f10x.c"中相应频率的倍频系数""RCU_PLL_MULx ,其中 x 修改为原值的2/3。

plan B:利用GD官方库中的函数 rcu_pll_config(RCU_PLLSRC_HXTAL, RCU_PLL_MUL18); 进行设置,

具体参数如图:

GD32f103 8M晶振改12M , 要修改的地方

 

 

换其他频率的晶振操作类似。

感谢以下STM32修改相关的参考贴:

https://www.cnblogs.com/Pual623548198/p/6928748.html

 

完。