bphpsjin 发表于 2026-6-15 18:21:24

STC32G12K128-35I-LQFP48的外部晶振问题

void CLK_Init(void)
{
    CLK_HSIOCK_Divider(1);            //设置高速外设时钟预分频系数

    CLK_XOSC_Enable();                  //启动外部高速有源晶振
    CLK_XOSC_LowGain();               //振荡器低增益
    CLK_XOSC_HighFilter();            //使能振荡器高频滤波器
    CLK_XOSC_WaitStable();            //等待振荡器稳定

    CLK_SYSCLK_Divider(10);             //切换主时钟前先将系统时钟降频

    HIRC_24M();                         //选择内部预置的频率

    CLK_MCLK_XTAL();                  //选择外部高速晶振作为主时钟
    CLK_MCLK2_BYPASS();               //旁路MCLK2,直接使用MCLK选择

    CLK_SYSCLK_Divider(1);            //设置系统时钟分频系数

    CLK_HSIOCK_MCLK();                  //选择MCLK主时钟作为高速外设时钟源

    //<<AICUBE_USER_CLOCK_INITIAL_BEGIN>>
    // 在此添加用户初始化代码
    //<<AICUBE_USER_CLOCK_INITIAL_END>>
}我用的这个配置会导致我的can通信不上,我注释掉这个值后用内部IRC就这次通信了,是我配置不对吗

乘风飞扬 发表于 2026-6-15 18:36:57

用示波器测一下振荡脚有没有起振,起振的话看看频率是多少

狂热主宰 发表于 2026-6-15 18:52:28

可能晶振类型和规格需要考虑
片内对各类晶振有没有兼容设计
根据手册参考电路选择的晶振会更稳定

bphpsjin 发表于 2026-6-15 19:00:18

乘风飞扬 发表于 2026-6-15 18:36
用示波器测一下振荡脚有没有起振,起振的话看看频率是多少

有起振4.3khz左右

梁工 发表于 2026-6-15 21:23:53

bphpsjin 发表于 2026-6-15 19:00
有起振4.3khz左右

那就是没有起振。再差的晶振,误差都在0.1%之内。

神农鼎 发表于 2026-6-15 22:19:46


页: [1]
查看完整版本: STC32G12K128-35I-LQFP48的外部晶振问题