hc32l13x内部晶振类型
时间: 2023-09-11 20:10:29 浏览: 89
HC32L13x系列芯片的内部晶振器是一种RC振荡器,它是通过一个电阻和一个电容来产生振荡信号的。由于RC振荡器的制造成本相对较低,因此RC振荡器被广泛应用于各种低成本、低功耗的应用场合。但是需要注意的是,由于RC振荡器的频率精度受环境温度、供电电压等因素的影响,因此在一些对时钟精度要求较高的应用场合,可能需要使用外部晶体振荡器。
相关问题
hc32l13启用内部晶振示例
启用 HC32L13 内部晶振的示例代码如下:
```c
#include "hc32l13x.h"
int main(void)
{
/* 使能内部高速时钟 */
CLK_HRCInit(CLK_HRC_ON, CLK_HRCFREQ_16M);
/* 配置系统时钟为内部高速时钟 */
CLK_SetSysclkDiv(CLK_SYSCLKSOURCE_HRC, CLK_SYSCLKDIV_1);
while (1)
{
/* 循环执行 */
}
}
```
在上述代码中,`CLK_HRCInit(CLK_HRC_ON, CLK_HRCFREQ_16M)` 函数用于启用内部高速时钟,并设置其频率为 16MHz。然后使用 `CLK_SetSysclkDiv(CLK_SYSCLKSOURCE_HRC, CLK_SYSCLKDIV_1)` 函数将系统时钟源设置为内部高速时钟,并将时钟分频系数设置为 1。
注意,在使用 HC32L13 内部晶振时,需要先启用内部高速时钟,然后才能将系统时钟源设置为内部高速时钟。
hc32l13启用内部晶振示例,开启串口打印
下面是启用 HC32L13 内部晶振并开启串口打印的示例代码:
```c
#include "hc32l13x.h"
#include "stdio.h"
int main(void)
{
/* 使能内部高速时钟 */
CLK_HRCInit(CLK_HRC_ON, CLK_HRCFREQ_16M);
/* 配置系统时钟为内部高速时钟 */
CLK_SetSysclkDiv(CLK_SYSCLKSOURCE_HRC, CLK_SYSCLKDIV_1);
/* 使能 UART0 时钟 */
CLK_FcgPeriphClockCmd(CLK_FCG_UART0, ENABLE);
/* 配置 UART0 引脚 */
GPIO_SetFunc(UART0_TX_PORT, UART0_TX_PIN, GPIO_FUNC_2_UART);
GPIO_SetFunc(UART0_RX_PORT, UART0_RX_PIN, GPIO_FUNC_2_UART);
/* 配置 UART0 参数 */
stc_uart0_baud_t stcBaud = {2400, UART0_BCR_CLK_DIV64};
UART0_BaudrateConfig(&stcBaud);
/* 使能 UART0 发送和接收功能 */
UART0_FuncCmd(UART0_TX | UART0_RX, ENABLE);
while (1)
{
/* 打印 Hello World! */
printf("Hello World!\r\n");
}
}
```
在上述代码中,使用了 `stdio.h` 中的 `printf()` 函数实现了串口打印功能。在 `main()` 函数中,先启用了内部高速时钟,并将系统时钟源设置为内部高速时钟。然后,使用 `CLK_FcgPeriphClockCmd(CLK_FCG_UART0, ENABLE)` 使能 UART0 时钟,并配置 UART0 引脚为串口功能。接着,使用 `UART0_BaudrateConfig()` 函数配置 UART0 波特率为 2400,并将时钟分频系数设置为 64。最后,使用 `UART0_FuncCmd()` 函数使能 UART0 发送和接收功能。
在 `while` 循环中,使用 `printf()` 函数打印字符串 "Hello World!",并通过串口发送出去。
阅读全文