STM32 UART buffer silent overrun
Often this issue can be overlooked by making the buffer bigger than worst case scenarios, flow control, or just good planning. However I dislike not knowing a buffer is full and I started to lose data. With at least some hardware buffers the oldest data is pushed out so you retain at least the latest information, but I am finding that the UART buffer just stops filling the buffer once full.
I understand there is probably a lot more to this than what I see on the surface, but it would be good to at least clarify why the buffer is not circular, and why an exception is not thrown.
stmhal: UART doesn't override RTS when buffer gets full
Currently (stmhal build) when using RTS HW flow control, the low level RTS signal seems to be behaving properly on a character by character basis. However, there is currently no interaction by the driver when the received buffer becomes full.
The uart driver should override RTS when the receive buffer becomes "full" (by whatever definition of full is appropriate - probably at least a few characters before the actual end of buffer). Once space is freed up in the buffer, then the uart driver should stop overriding RTS and let the HW control it again.