打印
[研电赛技术支持]

gd32修改晶振频率

[复制链接]
145|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在实习期间,我使用国产芯片GD32进行开发。由于GD32F2系列不支持图形化配置工具(例如STM32的CubeMX),只能基于官方提供的例程进行开发。然而,官方例程默认配置的是25MHz外部晶振(HSE),而我的实际硬件使用的是8MHz晶振。

起初我并未注意到这一问题,但在调试CAN通信时发现问题:当GD32通过CAN总线向上位机发送数据时,CAN分析仪持续报错(如波特率不匹配、帧错误等)。经过排查,发现根本原因是时钟配置错误——由于未根据实际硬件修改晶振频率,导致CAN外设的时钟源和波特率计算出现偏差。

解决方案:

(1)找到gd32f20x.c这一 系统级源文件



(2)如图修改第三行,并且跳转到HXTAL_VALUE的定义并修改它的值





(3)找到你使用的时钟配置相关的函数或文件,官方例程使用的是system_clock_120m_hxtal,于是我修改图下两个地方,这样修改完就可以确保单片机的频率是120MHZ。这边可以根据自己的项目实际去配置时钟。此外,我发现gd32f2时钟频率不支持除以小数的操作!



解决了时钟问题,gd32就可以正常的和上位机通讯了。


————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_65863078/article/details/149183827

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

186

主题

4300

帖子

5

粉丝