使用DMA中断接收串口 不定量数据
设置如下:
1. 接收中断增加
void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)
增加
if(((isrflags & USART_ISR_IDLE) != RESET) && ((cr1its & USART_CR1_IDLEIE) != RESET))
{
//Record the received bytes number
Rev_Size = huart->RxXferSize - huart->hdmarx->Instance->CNDTR;
//clear the IDLE flag
__HAL_UART_CLEAR_IDLEFLAG(huart);
//Abord the received process
HAL_UART_AbortReceive_IT(huart);
return;
}
2. DMA接收增加
HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
//Modification 1
SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
3. 空闲中断改动
HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart)
//ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXN