hc32l1dx启用RCH开启串口
时间: 2023-07-23 15:38:47 浏览: 175
在HC32L1DX芯片上启用RCH并开启串口,您可以使用以下代码:
```c
#include "hc32l1xx.h"
void UART_Config(void)
{
/* 使能USART1时钟 */
CLK_FcgPeriphClockCmd(CLK_FCG_UART1, Enable);
/* 配置UART1_RX(PA10)为输入引脚 */
GPIO_SetFunc(GPIO_PORT_A, GPIO_PIN_10, GPIO_FUNC_5_UART1_RX, Disable);
/* 配置UART1_TX(PA9)为输出引脚 */
GPIO_SetFunc(GPIO_PORT_A, GPIO_PIN_9, GPIO_FUNC_5_UART1_TX, Disable);
/* 配置UART1参数 */
stc_uart_baud_t stcBaud;
stc_uart_multimode_t stcMulti;
stc_uart_sclk_sel_t stcSclk;
stc_uart_parity_t stcParity;
stc_uart_data_width_t stcDataWidth;
stcBaud.u32Baud = 115200;
stcBaud.enRunMode = UartMode3;
stcBaud.enMode = UartMode;
stcBaud.enClkSel = UartPclkDiv1;
stcBaud.bDbaud = FALSE;
UART_BaudConfig(UARTCH1, &stcBaud);
stcMulti.enMulti_mode = UartNormal;
stcMulti.enMulti_duplex = UartHalfDuplex;
UART_MultiModeConfig(UARTCH1, &stcMulti);
stcSclk.enSclk_sel = UartSclkPclk;
stcSclk.enSclk_out = UartSclkOut1Or4;
UART_SclkSelConfig(UARTCH1, &stcSclk);
stcParity.enVerifyMode = UartParityNone;
stcParity.enMode = UartParityNone;
UART_ParityConfig(UARTCH1, &stcParity);
stcDataWidth.enDataWidth = UartDataBit8;
stcDataWidth.enDetectMode = UartSbDetectMode;
UART_DataWidthConfig(UARTCH1, &stcDataWidth);
/* 使能UART1 */
UART_FuncCmd(UARTCH1, Enable);
}
int main(void)
{
/* 使能RCH */
CLK_RCHConfig(CLK_RCHFreq192M, Enable);
/* 设置RCH为系统时钟 */
CLK_SetSysclkSrc(CLK_SYSCLKSOURCE_RCH);
/* 配置串口 */
UART_Config();
/* 发送数据到串口 */
UART_SendData(UARTCH1, 'H');
UART_SendData(UARTCH1, 'e');
UART_SendData(UARTCH1, 'l');
UART_SendData(UARTCH1, 'l');
UART_SendData(UARTCH1, 'o');
while (1)
{
/* 循环等待 */
}
}
```
该代码中,首先使用`CLK_RCHConfig`函数启用RCH,然后使用`CLK_SetSysclkSrc`函数将RCH设置为系统时钟。接着使用`UART_Config`函数配置UART1,并使用`UART_SendData`函数向串口发送数据。
需要注意的是,在使用RCH时,需要根据具体的芯片型号和工作条件选择合适的频率。同时,在使用串口时,需要根据具体的波特率、数据位数、停止位等参数进行配置。
阅读全文