打印
[研电赛技术支持]

GD32外部晶振起振慢导致实际不使用外部晶振

[复制链接]
70|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
观海|  楼主 | 2025-4-13 09:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
static void system_clock_72m_hxtal(void)
{
    uint32_t timeout = 0U;
    uint32_t stab_flag = 0U;
    uint32_t i;

    /* enable HXTAL */
    RCU_CTL0 |= RCU_CTL0_HXTALEN;

    /* wait until HXTAL is stable or the startup time is longer than HXTAL_STARTUP_TIMEOUT */
    do {
        timeout++;
        stab_flag = (RCU_CTL0 & RCU_CTL0_HXTALSTB);
    } while((0U == stab_flag) && (HXTAL_STARTUP_TIMEOUT != timeout));
    /* if fail */
    if(0U == (RCU_CTL0 & RCU_CTL0_HXTALSTB)) {                                //line1
        return;
}

.....
}



调试时发现,执行到line1时,正常的timeout=0x300~0x400左右,异常的大于HXTAL_STARTUP_TIMEOUT,很明显是有问题的,外部晶振供电后起振是非常快的,从这份代码上看。可能只要几千条指令就稳定了。这个一般是硬件的问题。
解决方法:

查看晶振有无问题
通过查看晶振附近电路
————————————————

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

原文链接:https://blog.csdn.net/lljss1980/article/details/126632664

使用特权

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

本版积分规则

120

主题

4234

帖子

1

粉丝