UART TX & RX
UART TX & RX的示例工程实现了以UART的轮询方式收发数据。
UART TX & RX示例的源代码和工程文件位于SDK_Folder\projects\peripheral\uart\uart_tx_rx,其中工程文件在文件夹Keil_5下。
代码理解
示例工程流程图如图 34所示:
- 配置UART模块。
g_uart_handle.p_instance = SERIAL_PORT_GRP; g_uart_handle.init.baud_rate = 115200; g_uart_handle.init.data_bits = UART_DATABITS_8; g_uart_handle.init.stop_bits = UART_STOPBITS_1; g_uart_handle.init.parity = UART_PARITY_NONE; g_uart_handle.init.hw_flow_ctrl = UART_HWCONTROL_NONE; g_uart_handle.init.rx_timeout_mode = UART_RECEIVER_TIMEOUT_ENABLE; hal_uart_deinit(&g_uart_handle); hal_uart_init(&g_uart_handle);UART详细配置参数请参考UART DMA。
- 调用hal_uart_receive()接口用polling方式接收数据,在接收完成后通过hal_uart_transmit()发送接收到的数据,直到收到的数据为‘0’时,测试结束。代码如下:
do { hal_uart_receive(&g_uart_handle, rdata, 128, 20); rlen = g_uart_handle.rx_xfer_size - g_uart_handle.rx_xfer_count; hal_uart_transmit(&g_uart_handle, rdata, rlen, 1000); } while (rdata[0] != '0');
测试验证
- 用GProgrammer下载uart_tx_rx.bin至开发板。
- 将开发板串口连接至PC端,打开并配置GRUart。
- 在GRUart的Receive Data窗口中将会显示通过UART接收与发送的数据信息。