hc32l13x将内部晶振作为时钟源示例,M0P_SYSCTRL->RCL_CR_f.STARTUP
时间: 2023-08-16 11:07:12 浏览: 104
HC32L13x的内部晶振启动后需要一定时间才能稳定。为了确保内部晶振稳定后再将其作为系统时钟源,需要使用 `M0P_SYSCTRL->RCL_CR_f.STARTUP` 寄存器设置内部晶振启动时间。下面是一个使用HC32L13x系列内部晶振作为时钟源并设置启动时间的示例代码:
```c
#include "hc32l13x.h"
int main(void)
{
/* 使能内部晶振 */
M0P_SYSCTRL->RCL_CR_f.STARTUP = 0x3u; // 设置内部晶振启动时间为3ms
M0P_SYSCTRL->RCL_CR_f.TRIM = 0x0u; // 内部晶振校准值设置为0
M0P_SYSCTRL->RCL_CR_f.EN = 1u; // 使能内部晶振
while(M0P_SYSCTRL->RCL_CR_f.STABLE != 1u); // 等待内部晶振稳定
/* 将内部晶振作为系统时钟源 */
M0P_SYSCTRL->SYSCTRL1_f.SYSCLKSEL = 0u; // 将HSI时钟源切换到内部晶振
/* 然后可以继续进行其他初始化操作 */
// ...
while(1)
{
// 程序主循环
}
}
```
在上面的代码中,我们首先使用 `M0P_SYSCTRL->RCL_CR_f.STARTUP` 寄存器设置内部晶振启动时间为3ms,然后将内部晶振校准值设置为0,并使能内部晶振。在内部晶振稳定之后,我们将系统时钟源切换到内部晶振。最后,我们可以继续进行其他系统初始化操作。需要注意的是,不同型号的HC32L13x系列微控制器可能会有不同的寄存器和接口定义,因此具体的代码实现可能会略有不同。
阅读全文