void USART2_IRQHandler(void)
{
/* USER CODE BEGIN USART2_IRQn 0 */
// __HAL_UART_DISABLE_IT(&huart2,UART_IT_RXNE); /* 关闭UART2接收不空中断 */
__HAL_UART_ENABLE_IT(&huart2,UART_IT_IDLE); /* 打开UART2空闲中断 */
if(__HAL_UART_GET_FLAG(&huart2, UART_FLAG_IDLE))
{
uart_num = WifiUart2Object;
__HAL_UART_CLEAR_IDLEFLAG(ObjectUart[WifiUart2Object].Uart);
READ_REG(ObjectUart[WifiUart2Object].Uart->Instance->DR); /* 清UART1空闲断源 */
READ_REG(ObjectUart[WifiUart2Object].Uart->Instance->SR);
HAL_UART_DMAStop(ObjectUart[WifiUart2Object].Uart);//处理完重置
HAL_UART_IDIE_IRQHandler(&huart2);
}
/* USER CODE END USART2_IRQn 0 */
HAL_UART_IRQHandler(&huart2);这个是ide代码自动生成,空闲中断一定要在这个函数之前这个函数内部会清空标志位。
/* USER CODE BEGIN USART2_IRQn 1 */
/* USER CODE END USART2_IRQn 1 */
}