Added flushing of transmit buffer

This commit is contained in:
2019-08-03 17:52:28 +02:00
parent b6c1c3b51b
commit 9f9f7a8de5
4 changed files with 39 additions and 1 deletions

View File

@@ -105,6 +105,12 @@ class Hardware0 {
return HardwareImpl::peekBlocking();
}
static void flushTx() FORCE_INLINE
{
while (HardwareImpl::txActive())
;
}
private:
using HardwareImpl = detail::Hardware<detail::Registers0, detail::ControlFlagsA0, detail::ControlFlagsB0,
detail::ControlFlagsC0, cfg, mode, driven>;
@@ -164,6 +170,14 @@ class Hardware0<mode, cfg, Driven::INTERRUPT> {
return (sm_rxBuf.head != sm_rxBuf.tail);
}
static void flushTx() FORCE_INLINE
{
while (sm_txBuf.head != sm_txBuf.tail)
;
while (HardwareImpl::txActive())
;
}
private:
using HardwareImpl = detail::Hardware<detail::Registers0, detail::ControlFlagsA0, detail::ControlFlagsB0,
detail::ControlFlagsC0, cfg, mode, Driven::INTERRUPT>;