hc32l136 uart示例代码
时间: 2023-07-02 22:21:32 浏览: 123
以下是HC32L136 MCU使用UART实现发送接收数据的示例代码:
```c
#include "hc32l136.h"
#include "stdio.h"
int main(void)
{
stc_gpio_config_t stcLEDPortCfg;
stc_usart_config_t stcUSARTCfg;
/* 使能外设时钟 */
CLK_FcgPeriphClockCmd(CLK_FCG_UART1, Enable);
/* 配置GPIO */
GPIO_StructInit(&stcLEDPortCfg);
stcLEDPortCfg.u16PinCfg = PIN_OD;
GPIO_Init(GPIOD, GPIO_PIN_4, &stcLEDPortCfg);
/* 配置UART */
USART_StructInit(&stcUSARTCfg);
stcUSARTCfg.u32Baudrate = 115200U;
stcUSARTCfg.u32ClkMode = USART_INTERNCLK_NONE_OUTPUT;
stcUSARTCfg.u32StopBit = USART_STOP_BIT_1;
stcUSARTCfg.u32CharWidth = USART_CHAR_WIDTH_8BIT;
USART_Init(USART_CH1, &stcUSARTCfg);
while (1)
{
uint8_t u8RxByte;
/* 发送字符串 */
USART_SendData(USART_CH1, 'H');
USART_SendData(USART_CH1, 'e');
USART_SendData(USART_CH1, 'l');
USART_SendData(USART_CH1, 'l');
USART_SendData(USART_CH1, 'o');
USART_SendData(USART_CH1, '\r');
USART_SendData(USART_CH1, '\n');
/* 接收数据 */
if (Set == USART_GetStatus(USART_CH1, USART_FLAG_RXNE))
{
u8RxByte = USART_RecData(USART_CH1);
printf("Received data: %c\r\n", u8RxByte);
}
}
}
```
在上面的示例代码中,我们首先进行了初始化,包括配置GPIO和UART等。然后,在主循环中,我们通过发送数据来测试UART是否正常工作,并通过接收数据来接收数据。如果接收到了数据,则将其打印到终端。
需要注意的是,在实际应用中,您需要根据实际需求来进行相应的配置和处理,例如设置波特率、数据位、停止位等参数,以及进行数据的解析和处理等。
阅读全文