STM32F4立方体HAL UART。是错误还是我错过了什么?
我正在使用基于中断的UART IO(无DMA)。 HAL_UART_Transmit_IT功能设置寄存器中的EIE位CR3。根据STM32F407数据表(以及实际行为),这仅在多缓冲区模式下(当DMAR位置1 时)产生中断。EIE使能针对帧错误(FE),溢出错误(ORE),噪声错误(NE)的中断生成。据我了解,此错误仅用于接收。 部分HAL_UART_IRQHandler功能: tmp1 = __HAL_UART_GET_FLAG(huart, UART_FLAG_ORE); tmp2 = __HAL_UART_GET_IT_SOURCE(huart, UART_IT_ERR); /* UART Over-Run interrupt occurred ----------------------------------------*/ if((tmp1 != RESET) && (tmp2 != RESET)) { __HAL_UART_CLEAR_OREFLAG(huart); huart->ErrorCode |= HAL_UART_ERROR_ORE; } if(huart->ErrorCode != HAL_UART_ERROR_NONE) { /* Set the UART state ready to be able to start again the process …