hc32l136使用内部晶振代码
时间: 2024-01-12 21:03:49 浏览: 23
使用HC32L136内部晶振的代码如下所示:
```c
#include "hc32l136.h"
int main(void)
{
/* 使能内部晶振 */
CLK_XtalIEn(ENABLE);
/* 等待内部晶振稳定 */
while(CLK_GetClkSourceSta() != CLK_ClkStaXTH);
/* 将HSI时钟源切换到内部晶振 */
CLK_SetSysclkSrc(CLK_SYSCLKSOURCE_XTH);
/* 然后可以继续进行其他初始化操作 */
// ...
while(1)
{
// 程序主循环
}
}
```
在代码中,我们首先使能了HC32L136的内部晶振,然后等待晶振稳定。在晶振稳定之后,我们将系统时钟源切换到内部晶振。最后,我们可以继续进行其他系统初始化操作。
相关问题
hc32l136内部晶振使用
HC32L136是华大基础的一款32位ARM Cortex-M3内核的微控制器,它内置了多种时钟源,包括内部高速 RC 振荡器、内部低速 RC 振荡器、内部晶振等。下面是HC32L136使用内部晶振的示例代码:
```
#include "hc32l136.h"
int main(void)
{
SystemInit(); // 系统时钟初始化
M0P_SYSCTRL->CMU_CTL0_f.HCLKSEL = 0; // 选择内部晶振为HCLK时钟源
M0P_SYSCTRL->RCH_CR_f.TRIM = 0x08; // 调整内部晶振的频率
while (1)
{
// 这里可以放置需要执行的代码
}
}
```
在上述代码中,首先调用了`SystemInit()`函数,对系统时钟进行初始化。然后选择内部晶振为HCLK时钟源,通过设置`M0P_SYSCTRL->CMU_CTL0_f.HCLKSEL`的值实现。最后,使用`M0P_SYSCTRL->RCH_CR_f.TRIM`对内部晶振的频率进行调整,具体的频率值需要根据实际情况进行设置。调整后,程序进入一个死循环,可以在其中放置需要执行的代码。
需要注意的是,HC32L136的内部晶振默认频率为16MHz,如果需要更高的精度和稳定性,还是需要使用外部晶振。另外,使用内部晶振时需要对其进行频率校准,以确保系统时钟的精度。
HC32l136如何使用内部晶振
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的内部晶振时,需要进行频率调整,以确保系统时钟的精度。