STM32f070 Uart+DMA 接收不定长数据,问题总结
之前以为在
USART2_IRQHandler(void){
}
里面直接添加空闲接收中断并判断标志位,可发现不好用,在出口发送的时候也会进入中断,导致发送出错。
如果用HALL库可以参考https://blog.csdn.net/foreverit/article/details/82055917#comments
这个写的挺好,主要在库函数添加 这里,
/* UART in mode Idle -------------------------------------------------*/
if(((isrflags & USART_SR_IDLE) != RESET) && ((cr1its & USART_CR1_IDLEIE) != RESET))
{
HAL_UART_IdleCpltCallback(huart);
return;
}
在把 HAL_UART_IdleCpltCallback(huart); 重新定义,编写。