DMA controller reads UART2 and puts bytes into ring buffer.
When UART2 receives a new byte, it sends UART2 RX EVENT to DMA, DMA writes received byte into ring buffer, increments DST and decrements BCNT parameters in PARAM set, associated with UART2 rx event field.
I check DST field in PARAM set. If DST was incremented, I read byte from the ring buffer. For example when DST was changed from 0xC0000000 to 0xC0000001, I read byte from 0xC0000000. Sometimes I read new received byte, sometimes old value. It means new value in the ring buffer appears after DST increment.
If I read buffer after small delay, for example read it twice and use the last value, I always get new received byte. But I'm not sure it's reliable method.
What else I should check before reading a new value from ring buffer?