hc32l13启用内部晶振示例,开启串口打印,Sysctrl_ClkInit
时间: 2024-02-28 13:57:00 浏览: 53
HC32L13X系列的示例库
好的,以下是示例代码:
```c
#include "hc32l13x.h"
#include "stdio.h"
/**
* @brief 系统时钟初始化
* @param 无
* @retval 无
*/
void Sysctrl_ClkInit(void)
{
/* 使能外部高速时钟 */
CLK_XTHW_StartUp(CLK_XTHW_FREQ_4MHZ);
/* 切换系统时钟源为外部高速时钟 */
CLK_SetSysclkSrc(CLK_SYSCLKSOURCE_XTHW);
/* 等待系统时钟源切换完成 */
while(CLK_GetSysclkSrc() != CLK_SYSCLKSOURCE_XTHW);
/* 使能内部高速时钟 */
CLK_HRCInit(CLK_HRC_FREQ_22MHZ);
/* 使能内部低速时钟 */
CLK_LRCInit(CLK_LRC_FREQ_32KHZ);
/* 使能内部高速时钟补偿 */
CLK_HRCAdjustTrim(CLK_HRC_FREQ_22MHZ);
/* 使能内部低速时钟补偿 */
CLK_LRCAdjustTrim(CLK_LRC_FREQ_32KHZ);
}
/**
* @brief 串口初始化
* @param 无
* @retval 无
*/
void Uart_Init(void)
{
/* 定义串口初始化结构体变量 */
stc_uart_init_t stcUartInit;
/* 使能外设时钟 */
CLK_FcgPeriphClockCmd(CLK_FCG_UART1, Enable);
/* 配置串口引脚 */
GPIO_SetFunc(GPIO_PORT_4, GPIO_PIN_2, GPIO_FUNC_2_UART1_TXD, Disable);
GPIO_SetFunc(GPIO_PORT_4, GPIO_PIN_3, GPIO_FUNC_2_UART1_RXD, Disable);
/* 配置串口参数 */
stcUartInit.u32Baudrate = 115200;
stcUartInit.u32WordLength = UartDataBits8;
stcUartInit.u32StopBit = UartStopBits1;
stcUartInit.u32Parity = UartParityNone;
stcUartInit.u32BitDirection = UartDataLsbFirst;
stcUartInit.u32ClockMode = UartClockMode0;
Uart_Init(UART1, &stcUartInit);
/* 使能串口发送接收功能 */
Uart_EnableFunc(UART1, UartRx);
}
int main(void)
{
/* 系统时钟初始化 */
Sysctrl_ClkInit();
/* 串口初始化 */
Uart_Init();
/* 打印欢迎语句 */
printf("Hello, world!\n");
while (1)
{
/* 串口发送数据 */
Uart_SendData(UART1, 'A');
}
}
```
这段代码实现了以下功能:
1. 启用内部晶振作为系统时钟源。
2. 初始化串口1引脚,并将波特率设置为115200。
3. 在主函数中,打印欢迎语句,并通过循环向串口发送数据。
希望这个示例能够对你有所帮助!
阅读全文