HC32l136如何使用内部晶振
时间: 2023-12-17 11:02:13 浏览: 67
HC32L130_HC32L136系列数据手册Rev1.71
HC32L136是华大基础的一款32位ARM Cortex-M3内核的微控制器,它内置了多种时钟源,包括内部高速 RC 振荡器、内部低速 RC 振荡器、内部晶振等。下面是HC32L136使用内部晶振的步骤:
1. 使能内部晶振。使用`M0P_SYSCTRL->RCL_CR_f.STP`开启内部晶振,等待其稳定。
2. 将内部晶振输出到PLL。使用`M0P_SYSCTRL->PLL_CTL_f.PLLSRC`选择PLL输入时钟源为内部晶振,开启PLL并等待其稳定。
3. 将PLL输出设置为系统时钟源。使用`M0P_SYSCTRL->CMU_CTL0_f.HCLKSEL`选择系统时钟源为PLL。
下面是一个示例代码,演示了如何使用HC32L136的内部晶振:
```c
#include "hc32l136.h"
int main(void)
{
// 使能内部晶振
M0P_SYSCTRL->RCL_CR_f.STP = 0; // 开启内部晶振
while (!M0P_SYSCTRL->RCL_CR_f.STABLE); // 等待晶振稳定
// 将内部晶振输出到PLL
M0P_SYSCTRL->PLL_CTL_f.PLLSRC = 2; // PLL输入时钟源选择RCL
M0P_SYSCTRL->PLL_CTL_f.PLLOFF = 0; // 开启PLL
while (!M0P_SYSCTRL->PLL_CTL_f.PLLSTB); // 等待PLL稳定
// 将PLL输出到系统时钟
M0P_SYSCTRL->CMU_CTL0_f.HCLKSEL = 1; // HCLK时钟源选择PLL
while (1)
{
// 这里可以放置需要执行的代码
}
}
```
以上代码中,使用`M0P_SYSCTRL->RCL_CR_f.STP`开启了内部晶振,并等待其稳定;使用`M0P_SYSCTRL->PLL_CTL_f.PLLSRC`选择PLL输入时钟源为内部晶振,开启PLL并等待其稳定;最后使用`M0P_SYSCTRL->CMU_CTL0_f.HCLKSEL`选择PLL输出为系统时钟源。需要注意的是,在使用HC32L136的内部晶振时,需要进行频率调整,以确保系统时钟的精度。
阅读全文