This is an old bug, but it's still present. I'm using the STM32F407VET, though this issue affects all STM32 devices I have tested.
To test, I simply trigger the UART1 RX interrupt and receive a string or a byte array with a timeout, then send it back to verify functionality. This works reliably on AVR microcontrollers like the ATmega128A.
Using ReciveByteArray or ReceiveString ( Timeout=10, NumBytes=30 ) I send Hello and I Get Hellooooooooooooooooooooooooo Back with 30 Chars .
for some unknown reason if I send Testing it replies Testing .
I understand that a common workaround is to receive characters byte by byte into a circular buffer and manage the timeout manually.
However, why hasn't this bug been fixed?
Additionally, I looked into configuring UART with DMA so data could be written to memory without CPU involvement, but it seems the HAL library used in flowcode lacks the necessary support for this ( or maybe it's too advanced for me


The C Code provided by ChatGPT was Compiled but was not able to receive any Data .