最近使用雅特力ATF413系列芯片做了一个项目, 发现频繁使用串口交互时较大几率会响应错误事件, 虽然在HAL_UART_ErrorCallback中清除了错误标识__HAL_UART_CLEAR_OREFLAG(aHuart); 但交互过程就会卡顿, 导致交互不流畅.
查找原因推断是系统运行的任务繁多, 开了四个定时器, 其中一个PWM输出定时器, 一个是100us的定时器, 还有两个ADC中断, DMA中断等, 目前的解决办法是提高串口的中断优先级, 降低其他中断的优先级, 配合HAL_UART_ErrorCallback回调进行整体优化.
经测试发现串口几乎不出现接收溢出了.