以32為例首先,在main.c文件中添加如下代碼: #include "main.h" #include "usart.h" #include "string.h" UART_HandleTypeDef huart2; int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART2_UART_Init(); char receivedData[50]; // 用于存儲接收的數據 memset(receivedData, 0, sizeof(receivedData)); // 清空數組 while (1) { HAL_UART_Receive(&huart2, (uint8_t*)receivedData, 50, 100); // 接收串口數據 if (strlen(receivedData) > 0) { HAL_UART_Transmit(&huart2, (uint8_t*)receivedData, strlen(receivedData), 100); // 發送接收到的數據 memset(receivedData, 0, sizeof(receivedData)); // 清空數組 } } } 然后,在usart.c文件中,添加如下配置初始化串口的代碼: #include "usart.h" #include "main.h" UART_HandleTypeDef huart2; void MX_USART2_UART_Init(void) { huart2.Instance = USART2; huart2.Init.BaudRate = 9600; huart2.Init.WordLength = UART_WORDLENGTH_8B; huart2.Init.StopBits = UART_STOPBITS_1; huart2.Init.Parity = UART_PARITY_NONE; huart2.Init.Mode = UART_MODE_TX_RX; huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart2.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart2) != HAL_OK) { Error_Handler(); } }通過HAL_UART_Receive函數從串口接收數據,并通過HAL_UART_Transmit函數將接收到的數據發送回上位機。需要根據實際情況調整串口和緩沖區的大小 |