#include "hc32_ddl.h"
#define VIRTUAL_COM_PORT_BAUDRATE 115200
void VirtualComPort_Init(void)
{
stc_usart_init_t stcUsartInit;
stc_gpio_init_t stcGpioInit;
// USART初始化
MEM_ZERO_STRUCT(stcUsartInit);
stcUsartInit.u32Baudrate = VIRTUAL_COM_PORT_BAUDRATE;
stcUsartInit.u32DataBits = USART_DATA_BITS_8;
stcUsartInit.u32StopBits = USART_STOP_BITS_1;
stcUsartInit.u32Parity = USART_PARITY_NONE;
stcUsartInit.u32OverSampleBit = USART_OVER_SAMPLE_16;
USART_Init(M4_USART1, &stcUsartInit);
// GPIO初始化
MEM_ZERO_STRUCT(stcGpioInit);
stcGpioInit.u32PinMode = PIN_MODE_AF;
stcGpioInit.u32PullUp = PIN_PULL_UP;
GPIO_Init(GPIO_PORT_A, GPIO_PIN_2, &stcGpioInit); // TX
GPIO_Init(GPIO_PORT_A, GPIO_PIN_3, &stcGpioInit); // RX
// 配置GPIO复用功能
GPIO_SetFunc(GPIO_PORT_A, GPIO_PIN_2, GPIO_FUNC_7_USART1_TX);
GPIO_SetFunc(GPIO_PORT_A, GPIO_PIN_3, GPIO_FUNC_7_USART1_RX);
// 使能USART
USART_FuncCmd(M4_USART1, USART_RX | USART_TX, Enable);
}
int main(void)
{
// 系统初始化
System_Init();
// 初始化虚拟串口
VirtualComPort_Init();
while (1)
{
// 发送数据
USART_SendData(M4_USART1, 'H');
USART_SendData(M4_USART1, 'e');
USART_SendData(M4_USART1, 'l');
USART_SendData(M4_USART1, 'l');
USART_SendData(M4_USART1, 'o');
USART_SendData(M4_USART1, '\r');
USART_SendData(M4_USART1, '\n');
// 延时
DDL_DelayMS(1000);
}
}
|