hc32l13x使用内部时钟后,串口初始化如何配置9600,示例代码
时间: 2024-03-21 08:39:05 浏览: 94
以下是使用HC32L13X的内部时钟进行串口初始化配置9600的示例代码:
```c
#include "hc32_gpio.h"
#include "hc32_uart.h"
#include "hc32_sysctrl.h"
int main(void)
{
stc_gpio_config_t stcGpioCfg;
stc_uart_config_t stcUartCfg;
// 使能内部高速时钟
Sysctrl_ClkSourceEnable(SysctrlClkXTL, FALSE);
Sysctrl_ClkSourceEnable(SysctrlClkHSI, TRUE);
// 配置GPIO引脚
Gpio_StructInit(&stcGpioCfg);
stcGpioCfg.u16PinCfg = GpioTx;
stcGpioCfg.u16PinAttr = GpioAttrPullup;
Gpio_Init(GpioPortA, GpioPin9, &stcGpioCfg);
stcGpioCfg.u16PinCfg = GpioRx;
Gpio_Init(GpioPortA, GpioPin10, &stcGpioCfg);
// 配置串口时钟
Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
Sysctrl_SetPeripheralGate(SysctrlPeripheralUart0, TRUE);
Uart_SetClkDiv(UARTCH0, SysctrlClockDiv8); // HSI时钟分频为8
Uart_SetBaudrate(UARTCH0, 9600UL); // 设置波特率为9600
// 配置串口参数
Uart_StructInit(&stcUartCfg);
stcUartCfg.u32Baudrate = 9600UL;
stcUartCfg.enDataLength = UartDataLength8;
stcUartCfg.enStopBit = UartStopBit1;
stcUartCfg.enParity = UartParityNone;
Uart_Init(UARTCH0, &stcUartCfg);
// 使能串口发送和接收功能
Uart_EnableFunc(UARTCH0, UartRx);
Uart_EnableFunc(UARTCH0, UartTx);
while (1)
{
// 串口发送数据
Uart_SendData(UARTCH0, 'A');
}
}
```
以上代码将HC32L13X的内部时钟设置为串口时钟源,并通过GPIO模块配置了TX和RX引脚。同时,使用UART模块配置了串口时钟分频、波特率、数据位、停止位和校验位等参数,并使能了串口发送和接收功能。在主循环中,通过串口发送数据。
阅读全文