GD32F305奇怪串口问题求助

[复制链接]
 楼主| ftnkn 发表于 2024-2-18 17:15 | 显示全部楼层 |阅读模式
片子用的是GD32F305,外部8M晶振;原来用的是STM32F105,代码也是基于ST的库写的,一切正常;
现在想用GD的库重写代码,官方推荐的是25M的晶振,和晶振相关的头文件定义和函数也修改了,串口用的是USART2,也是就是ST里的USART3;波特率是921600,ST的库串口正常,换成GD库后串口速度变慢了,请问大家如何解决?

玄德 发表于 2024-2-18 18:43 | 显示全部楼层

两个方法。
要么搞清楚时钟树,正确配置一下,使各个时钟源和 ST 芯片一样。
要么搞清串口的源时钟的频率,按需要的波特率修改一下配置寄存器。

ldw522 发表于 2024-2-19 09:34 | 显示全部楼层
楼上是对的
 楼主| ftnkn 发表于 2024-2-19 11:27 | 显示全部楼层

我用 rcu_clock_freq_get 获取了下  CK_SYS、 CK_AHB、CK_APB1、CK_APB2的时钟,分别是120M,120M,60M和120M,看起来挺正常的,我用的8M外部晶振,但也按照教程改了频率跑到120M,用GD的库串口同样的几个收发请求要2秒多,而用ST库跑72M时用不到1秒,请问该如何继续往下查?
 楼主| ftnkn 发表于 2024-2-19 11:28 | 显示全部楼层
玄德 发表于 2024-2-18 18:43
两个方法。
要么搞清楚时钟树,正确配置一下,使各个时钟源和 ST 芯片一样。
要么搞清串口的源时钟的频率 ...

我用 rcu_clock_freq_get 获取了下  CK_SYS、 CK_AHB、CK_APB1、CK_APB2的时钟,分别是120M,120M,60M和120M,看起来挺正常的,我用的8M外部晶振,但也按照教程改了频率跑到120M,用GD的库串口同样的几个收发请求要2秒多,而用ST库跑72M时用不到1秒,请问该如何继续往下查?
玄德 发表于 2024-2-19 15:30 | 显示全部楼层

几个收发请求要2秒多

这话是什么意思?



 楼主| ftnkn 发表于 2024-2-19 15:34 | 显示全部楼层
问题解决了,串口没问题,是我测试程序的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

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