I am looking for some minor guidance on STM32L4 DMA Serial :) If i have something like pub fn serial_isr(&mut self) { // Check for character match if self.rx.is_character_match(true) { if let Some(dma_buf) = SerialDmaPool::alloc() { let dma_buf = dma_buf.init(DMAFrame::new()); let buf = self.fr.character_match_interrupt(dma_buf); self.ingress.write(buf.read()); } } else if self.rx.is_receiver_timeout(true) { if let Some(dma_buf) = SerialDmaPool::alloc() { let dma_buf = dma_buf.init(DMAFrame::new()); let buf = self.fr.receiver_timeout_interrupt(dma_buf); self.ingress.write(buf.read()); } } } pub fn dma_isr(&mut self) { if let Some(dma_buf) = SerialDmaPool::alloc() { let dma_buf = dma_buf.init(DMAFrame::new()); let buf = self.fr.transfer_complete_interrupt(dma_buf); self.ingress.write(buf.read()); } } Where "serial_isr" is "bind = USARTx" and "dma_isr" is "bind = DMAx_CHx" Is there anyway to properly implement flowcontrol on this? I am using hardware flowcontrol on the uart (rts/cts), but that obviously doesn't kick in if "self.ingress.write" returns buffer full.. How is stuff like this normally handled?