项目配置
1使能串口DMA
2开启中断
代码编写
1需要使用的函数
HAL_UART_DMAStop(UART_HandleTypeDef *huart); //停止DMA传输
__HAL_DMA_GET_COUNTER(__HANDLE__); //得到DMA传输了多少数据
__HAL_UART_CLEAR_IDLEFLAG(__HANDLE__); //清除空闲标志
HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size); //使用DMA的方式发送
HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); //使用DMA的方式接收
2 使能空闲中断(在USART1_IRQHandler(void) 函数中添加)
/* USER CODE BEGIN USART1_IRQn 1 */
//使能空闲中断
HAL_IDLE_IRQCallback(&huart1);
/* USER CODE END USART1_IRQn 1 */