GD32f103 8M晶振改12M , 要修改的地方
手里的单片机是gd32f103ret6,晶振和官方库默认的8M不一致,导致串口乱码。
网上找了好久全是STM32的例子,不过还是有参考意义的。
以下是gd32f10x 的设置方式。
1.Keil中的Target设置:
PS:这一项好像会自动设置,安全起见检查一下
2. "gd32f10x.h" 中的 HXTAL_VALUE 修改。
注意:gd32f10x.h默认是只读的,需要到资源管理器中取消只读属性才能修改
PS:这一项极其重要,不修改会导致串口等波特率设置不对。
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); 进行设置,
具体参数如图:
换其他频率的晶振操作类似。
感谢以下STM32修改相关的参考贴:
https://www.cnblogs.com/Pual623548198/p/6928748.html
完。