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

@@ -109,6 +109,12 @@ class Hardware1 {
return HardwareImpl::peekBlocking();
}
static void flushTx() FORCE_INLINE
{
while (HardwareImpl::txActive())
;
}
private:
using HardwareImpl = detail::Hardware<detail::Registers1, detail::ControlFlagsA1, detail::ControlFlagsB1,
detail::ControlFlagsC1, cfg, mode, driven>;
@@ -168,6 +174,14 @@ class Hardware1<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::Registers1, detail::ControlFlagsA1, detail::ControlFlagsB1,
detail::ControlFlagsC1, cfg, mode, Driven::INTERRUPT>;