hc32l13x将内部晶振作为时钟源,PLL示例代码
时间: 2024-01-10 20:05:09 浏览: 26
以下是一个使用HC32L13x将内部晶振作为时钟源,配置PLL并输出时钟的示例代码:
```c
#include "hc32l13x.h"
int main(void)
{
// 使能外设时钟
M0P_SYSCTRL->PERI_CLKEN0_f.GPIO = 1;
// 配置内部晶振作为系统时钟源
M0P_SYSCTRL->RCL_CR_f.TRIM = 0x0; // 内部晶振校准值
M0P_SYSCTRL->RCL_CR_f.STABLE = 0x1; // 内部晶振稳定标志
M0P_SYSCTRL->RCL_CR_f.OSC_EN = 0x1; // 使能内部晶振
M0P_SYSCTRL->RCL_CR_f.CLK_SRC = 0x0; // 将内部晶振作为系统时钟源
// 配置PLL
M0P_SYSCTRL->PLL_CR_f.PLLSRC = 0x1; // 选择内部晶振作为PLL时钟源
M0P_SYSCTRL->PLL_CR_f.PLLM = 0x1; // PLL输入时钟分频系数
M0P_SYSCTRL->PLL_CR_f.PLLN = 0x20; // PLL倍频系数
M0P_SYSCTRL->PLL_CR_f.PLLP = 0x0; // PLL输出时钟分频系数
M0P_SYSCTRL->PLL_CR_f.PLLR = 0x0; // PLL输出时钟分频系数
M0P_SYSCTRL->PLL_CR_f.PLLFOUTEN = 0x1; // 使能PLL输出时钟
// 等待PLL稳定
while (M0P_SYSCTRL->PLL_CR_f.PLLLOCK != 0x1);
// 将PLL输出时钟作为系统时钟源
M0P_SYSCTRL->RCL_CR_f.CLK_SRC = 0x2;
// 等待系统时钟稳定
while (M0P_SYSCTRL->RCL_CR_f.STABLE != 0x1);
// 现在,您可以使用PLL输出时钟来驱动您的应用程序了。
while (1)
{
// 用户代码
}
}
```
请注意,以上代码仅供参考,具体的配置参数需要根据您的实际需求进行调整。如果您需要使用外部时钟源,请参考芯片的数据手册以获取详细的配置方法。