pub fn flush_tx_nb(&mut self) -> nb::Result<(), Error> {
        self.regs().ep1_conf().modify(|_, w| w.wr_done().set_bit());

        // FIXME: raw register access
        if self.regs().ep1_conf().read().bits() & 0b011 == 0b000 {
            Err(nb::Error::WouldBlock)
        } else {
            Ok(())
        }
    }
Flush the output FIFO but don't block if it isn't ready immediately
esp-hal/src/usb_serial_jtag.rs