hc32l13x启用内部晶振示例,开启串口打印
时间: 2023-08-16 09:07:12 浏览: 104
启用 HC32L13X 内部晶振并开启串口打印的示例代码如下:
```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);
/* 使能GPIOA时钟 */
CLK_EnableClock(CLK_CLK_GPIA);
/* 配置PA14为UART0的TX引脚 */
GPIO_SetFunc(GPIOA, GPIO_PIN_14, GPIO_FUNC_5_UART0_TXD, PIN_SUBFUNC_DISABLE);
/* 使能UART0时钟 */
CLK_EnableClock(CLK_CLK_UART0);
/* 配置UART0 */
stc_uart_init_t stcUartInit;
stcUartInit.u32Baudrate = 115200;
stcUartInit.u32SmplPt = UART_SPLP_16;
stcUartInit.u32StopBit = UART_STOP_BIT_1;
stcUartInit.u32CharSize = UART_CHAR_SIZE_8BIT;
stcUartInit.u32Parity = UART_PARITY_NONE;
stcUartInit.u32StartBit = UART_START_BIT_FALLING;
UART_Init(UART0, &stcUartInit);
while (1)
{
/* 打印一条消息 */
printf("Hello, world!\n");
/* 延时一段时间 */
for (uint32_t i = 0; i < 1000000; i++);
}
}
```
在上述代码中,我们首先启用了内部高速时钟,并将系统时钟源设置为内部高速时钟。然后我们使用 `CLK_EnableClock(CLK_CLK_GPIA)` 和 `GPIO_SetFunc(GPIOA, GPIO_PIN_14, GPIO_FUNC_5_UART0_TXD, PIN_SUBFUNC_DISABLE)` 函数配置 PA14 为 UART0 的 TX 引脚。
接着,我们启用了 UART0 时钟,并使用 `UART_Init` 函数配置 UART0,设置波特率为 115200,采样率为 16,停止位为 1,数据位为 8,无校验位,起始位为下降沿。
最后,我们循环执行,在每次循环中打印一条消息,并延时一段时间。我们使用标准库函数 `printf` 来打印消息,这需要在头文件中包含 `stdio.h`。
阅读全文