在main函数中的while(1)之前添加串口DMA使能函数,开启串口空闲中断。
在主循环中添加FLAG检测,如果使用RTOS,则在进程中检测。 /* USER CODE BEGIN 2 */
HAL_UART_Receive_DMA(&huart1, UsartType.RX_pData, RX_LEN);
__HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(UsartType.RX_flag) // Receive flag
{
UsartType.RX_flag=0; // clean flag
HAL_UART_Transmit_DMA(&huart1, UsartType.RX_pData, UsartType.RX_Size);
}
}
/* USER CODE END 3 */
|