gd32串口打印数据乱码解决方案

在修改了时钟源后,发现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)即解决问题!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值