在修改了时钟源后,发现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
|
|