1.溢出错误过载错误ORE错误1.1什么是溢出错误摘引自ST官方参考手册如果RXNE还没有被复位又接收到一个字符则发生溢出错误。数据只有当RXNE位被清零后才能从移位寄存器转移到RDR寄存器。RXNE标记是接收到每个字节后被置位的。如果下一个数据已被收到或先前DMA请求还没被服务时RXNE标志仍是置起的溢出错误产生。由上看出当接收到一个字节的数据完成时因为某种原因未及时读取数据串口再接收到数据时ORE位会置位。1.2需要注意的事项当开启接收中断后即使没有开启过载错误中断该中断使能依旧被打开因此一旦因为某种原因发生过载错误中断在中断服务中也没有处理该中断时将会因此中断标志位始终挂起重复进中断导致程序运行异常。因此在开启接收中断时必须在中断中判断是否发生过载错误中断如果发生中断退出时必须清除该中断标志位。STM32官方提供的固件库中不能使用“USART_GetITStatus”这个函数读取过载错误标志位这个函数读取中断标志位的前提条件是对应的中断必须打开如果读取的中断允许位没有置位则返回RESET。针对过载错误中断很容易因为只开了接收中断而导致读取过载错误中断标志位返回错误状态。可以直接访问寄存器或使用“USART_GetFlagStatus”函数读取。清除过载错误中断标志位是软件序列先读SR寄存器再读DR寄存器。