在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 */
|