[方案相关] 简单的时钟配置示例

[复制链接]
2447|3
 楼主| 狗啃模拟 发表于 2024-5-31 00:25 | 显示全部楼层 |阅读模式
在HC32F460系列微控制器中,时钟配置是非常重要的,因为它直接影响到 MCU 的整体性能和功能。下面是一个简单的时钟配置示例,可以作为参考:

#include "hc32f46x.h"

int main(void)
{
    // 初始化外部高速晶振
    SystemInit();

    // 配置PLL
    CLK_PLLInitTypeDef stcPLLInitStruct;
    stcPLLInitStruct.PLLMul = CLK_PLL_MUL10;
    stcPLLInitStruct.PLLDiv = CLK_PLL_DIV2;
    CLK_PLLInit(&stcPLLInitStruct);

    // 选择PLL为系统时钟
    CLK_ClockSwitchCmd(CLK_CKS_PLL, Enable);

    // 等待PLL稳定
    while (CLK_GetClockReadyStatus(CLK_FLAG_PLLSTB) != Set);

    // 设置FLASH延时周期
    // 根据CPU频率调整
    // 在高频率下,可能需要增加延时周期以确保Flash稳定
    // 详细信息请参考芯片手册
    FLASH_WaitCycle(FLASH_WAIT_CYCLE_2);

    // 设置系统时钟
    CLK_SYSCLKDiv(CLK_SYSCLK_DIV1);

    // 配置外设时钟
    // 这里可以根据具体的外设需求进行配置

    // 启动主程序
    while (1)
    {
        // 主循环
    }
}


 楼主| 狗啃模拟 发表于 2024-5-31 00:25 | 显示全部楼层
上述代码中,首先调用 SystemInit() 函数初始化外部高速晶振。然后配置 PLL,将其配置为适当的倍频和分频,以获得所需的系统时钟频率。接下来,选择 PLL 作为系统时钟源,并等待 PLL 稳定。在配置完成后,你可以根据需要配置外设时钟。最后,进入主循环,程序开始执行主要任务。
 楼主| 狗啃模拟 发表于 2024-5-31 00:25 | 显示全部楼层
需要注意的是,时钟配置在 HC32F460 系列 MCU 中可能会根据具体的硬件设计和应用需求有所不同,因此需要仔细阅读芯片手册,并根据具体情况进行调整。
亚瑟 发表于 2024-6-28 19:48 | 显示全部楼层
初始化的时候是不是用的内部振荡器啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

1054

帖子

2

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