[研电赛技术支持] gd32串口打印数据乱码解决方案

[复制链接]
1|0
Jiangxiaopi 发表于 2026-6-9 21:41 | 显示全部楼层 |阅读模式
在修改了时钟源后,发现gd32串口输入输出的数据乱码了。。。。

经排查发现原因是:①时钟源配置出错

当前使用的芯片是GD32F305RC,时钟频率最高可达到120Mhz。
在修改使用源后,即使用如下宏定义,

#define __SYSTEM_CLOCK_120M_PLL_HXTAL                (uint32_t)120000000


还需要根据开发板上的晶振修改晶振的宏
在gd32f30x.h的文件中定义了#define HXTAL_VALUE

#if !defined HXTAL_VALUE
#ifdef GD32F30xCL
#define HXTAL_VALUE                ((uint32_t)250000000)
#else
#define HXTAL_VALUE                ((uint32_t)8000000)
#endif /* HXTAL_VALUE */
#endif /* high speed crystal osc value */



因为定义了#define GD32F30x_CL,所以是#define HXTAL_VALUE ((uint32_t)250000000)

在修改system_gd32f30x.c文件中的static void system_clock_120m_hxtal(void)函数,根据开发板上的晶振修改RCU_CFG1,把CK_PREDIV0调成 4MHZ

检查开发板的晶振,发现其石英晶振位8MHZ,把HXTAL_VALUE修改为#define HXTAL_VALUE ((uint32_t)8000000)即解决问题!
————————————————
版权声明:本文为CSDN博主「某风吾起」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43871650/article/details/135681574

您需要登录后才可以回帖 登录 | 注册

本版积分规则

137

主题

484

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0