打印

gd32开发板晶振问题

[复制链接]
892|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如题之前用的官方gd32f207i-eval开发板开发的一套程序,然后换了自己画的板子,用的gd32f205zet,官方外部晶振是25M,我用的8M,同样的程序只有io口的变化,串口设置波特率为115200,在官方板上没问题,但是在我的板子上串口接收助手要设置38400才能正常接收,跟晶振一样也是三倍的差距,我的板子上体感使用延时函数1ms肯定不止,应该是晶振的问题,但是我看例程代码里的系统时钟使用的是内部时钟,这个外部晶振应该在什么地方改一下。


这是我找到的外部晶振的定义,直接改8000000也不对,求问还要动什么地方


这是系统时钟,用的是内部时钟啊,为什么外部晶振会影响

使用特权

评论回复
沙发
天天想你呦|  楼主 | 2022-6-17 15:12 | 只看该作者
有大佬懂的吗,不太清楚的给个大概方向也可以啊,小弟新手刚开始接触这东西

使用特权

评论回复
板凳
xys9190| | 2022-6-18 14:40 | 只看该作者
谢谢分享

使用特权

评论回复
地板
sonicll| | 2022-6-20 10:14 | 只看该作者
系统时钟不是在你那个位置看的,是在这里,有好几个宏定义,你看你开启的是哪一个:
/* select a system clock by uncommenting the following line */
/* use IRC8M */
//#define __SYSTEM_CLOCK_IRC8M                    (uint32_t)(__IRC8M)
//#define __SYSTEM_CLOCK_48M_PLL_IRC8M            (uint32_t)(48000000)
//#define __SYSTEM_CLOCK_72M_PLL_IRC8M            (uint32_t)(72000000)
//#define __SYSTEM_CLOCK_108M_PLL_IRC8M           (uint32_t)(108000000)
//#define __SYSTEM_CLOCK_120M_PLL_IRC8M           (uint32_t)(120000000)

/* use HXTAL */
//#define __SYSTEM_CLOCK_HXTAL                    (uint32_t)(__HXTAL)
//#define __SYSTEM_CLOCK_24M_PLL_HXTAL            (uint32_t)(24000000)
//#define __SYSTEM_CLOCK_36M_PLL_HXTAL            (uint32_t)(36000000)
//#define __SYSTEM_CLOCK_48M_PLL_HXTAL            (uint32_t)(48000000)
//#define __SYSTEM_CLOCK_56M_PLL_HXTAL            (uint32_t)(56000000)
//#define __SYSTEM_CLOCK_72M_PLL_HXTAL            (uint32_t)(72000000)
//#define __SYSTEM_CLOCK_96M_PLL_HXTAL            (uint32_t)(96000000)
//#define __SYSTEM_CLOCK_108M_PLL_HXTAL           (uint32_t)(108000000)
#define __SYSTEM_CLOCK_120M_PLL_HXTAL           (uint32_t)(120000000)


如果你用的是外部晶振倍频到120M的,除了要把HXTAL_VALUE修改为8M,还需要修改system_clock_120m_hxtal这个函数,官方的用法是(25M/5)*12/5 = 12M,然后12M*10=120M,你可以修改成(8M/8)*12/8 = 12M,12M*10=120M

使用特权

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

本版积分规则

5

主题

11

帖子

0

粉丝