pub struct BufferedUart { /* private fields */ }Expand description
Buffered UART driver.
Implementations§
Source§impl BufferedUart
 
impl BufferedUart
Sourcepub fn new<'d, T: Instance>(
    _uart: Peri<'d, T>,
    tx: Peri<'d, impl TxPin<T>>,
    rx: Peri<'d, impl RxPin<T>>,
    _irq: impl Binding<T::Interrupt, BufferedInterruptHandler<T>>,
    tx_buffer: &'d mut [u8],
    rx_buffer: &'d mut [u8],
    config: Config,
) -> Self
 
pub fn new<'d, T: Instance>( _uart: Peri<'d, T>, tx: Peri<'d, impl TxPin<T>>, rx: Peri<'d, impl RxPin<T>>, _irq: impl Binding<T::Interrupt, BufferedInterruptHandler<T>>, tx_buffer: &'d mut [u8], rx_buffer: &'d mut [u8], config: Config, ) -> Self
Create a buffered UART instance.
Sourcepub fn new_with_rtscts<'d, T: Instance>(
    _uart: Peri<'d, T>,
    tx: Peri<'d, impl TxPin<T>>,
    rx: Peri<'d, impl RxPin<T>>,
    rts: Peri<'d, impl RtsPin<T>>,
    cts: Peri<'d, impl CtsPin<T>>,
    _irq: impl Binding<T::Interrupt, BufferedInterruptHandler<T>>,
    tx_buffer: &'d mut [u8],
    rx_buffer: &'d mut [u8],
    config: Config,
) -> Self
 
pub fn new_with_rtscts<'d, T: Instance>( _uart: Peri<'d, T>, tx: Peri<'d, impl TxPin<T>>, rx: Peri<'d, impl RxPin<T>>, rts: Peri<'d, impl RtsPin<T>>, cts: Peri<'d, impl CtsPin<T>>, _irq: impl Binding<T::Interrupt, BufferedInterruptHandler<T>>, tx_buffer: &'d mut [u8], rx_buffer: &'d mut [u8], config: Config, ) -> Self
Create a buffered UART instance with flow control.
Sourcepub fn blocking_write(&mut self, buffer: &[u8]) -> Result<usize, Error>
 
pub fn blocking_write(&mut self, buffer: &[u8]) -> Result<usize, Error>
Write to UART TX buffer blocking execution until done.
Sourcepub fn blocking_flush(&mut self) -> Result<(), Error>
 
pub fn blocking_flush(&mut self) -> Result<(), Error>
Flush UART TX blocking execution until done.
Sourcepub fn blocking_read(&mut self, buffer: &mut [u8]) -> Result<usize, Error>
 
pub fn blocking_read(&mut self, buffer: &mut [u8]) -> Result<usize, Error>
Read from UART RX buffer blocking execution until done.
Sourcepub async fn send_break(&mut self, bits: u32)
 
pub async fn send_break(&mut self, bits: u32)
Wait until TX is empty and send break condition.
Sourcepub fn set_baudrate<'d>(&mut self, baudrate: u32)
 
pub fn set_baudrate<'d>(&mut self, baudrate: u32)
sets baudrate on runtime
Sourcepub fn split(self) -> (BufferedUartTx, BufferedUartRx)
 
pub fn split(self) -> (BufferedUartTx, BufferedUartRx)
Split into separate RX and TX handles.
Sourcepub fn split_ref(&mut self) -> (&mut BufferedUartTx, &mut BufferedUartRx)
 
pub fn split_ref(&mut self) -> (&mut BufferedUartTx, &mut BufferedUartRx)
Split the Uart into a transmitter and receiver by mutable reference, which is particularly useful when having two tasks correlating to transmitting and receiving.
Trait Implementations§
Source§impl BufRead for BufferedUart
 
impl BufRead for BufferedUart
Source§impl ErrorType for BufferedUart
 
impl ErrorType for BufferedUart
Source§impl Read for BufferedUart
 
impl Read for BufferedUart
Source§async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>
 
async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>
Read some bytes from this source into the specified buffer, returning how many bytes were read. Read more
Source§async fn read_exact(
    &mut self,
    buf: &mut [u8],
) -> Result<(), ReadExactError<Self::Error>>
 
async fn read_exact( &mut self, buf: &mut [u8], ) -> Result<(), ReadExactError<Self::Error>>
Read the exact number of bytes required to fill 
buf. Read moreSource§impl Read for BufferedUart
 
impl Read for BufferedUart
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>
 
fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>
Read some bytes from this source into the specified buffer, returning how many bytes were read. Read more
Source§fn read_exact(
    &mut self,
    buf: &mut [u8],
) -> Result<(), ReadExactError<Self::Error>>
 
fn read_exact( &mut self, buf: &mut [u8], ) -> Result<(), ReadExactError<Self::Error>>
Read the exact number of bytes required to fill 
buf. Read moreSource§impl Read for BufferedUart
 
impl Read for BufferedUart
Source§impl ReadReady for BufferedUart
 
impl ReadReady for BufferedUart
Source§impl Write for BufferedUart
 
impl Write for BufferedUart
Source§async fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>
 
async fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>
Write a buffer into this writer, returning how many bytes were written. Read more
Source§impl Write for BufferedUart
 
impl Write for BufferedUart
Source§fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>
 
fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error>
Write a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<(), Self::Error>
 
fn flush(&mut self) -> Result<(), Self::Error>
Flush this output stream, blocking until all intermediately buffered contents reach their destination.
Source§impl Write for BufferedUart
 
impl Write for BufferedUart
Auto Trait Implementations§
impl Freeze for BufferedUart
impl !RefUnwindSafe for BufferedUart
impl Send for BufferedUart
impl Sync for BufferedUart
impl Unpin for BufferedUart
impl !UnwindSafe for BufferedUart
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CheckedAs for T
 
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
    T: CheckedCast<Dst>,
 
fn checked_as<Dst>(self) -> Option<Dst>where
    T: CheckedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
    Src: CheckedCast<Dst>,
 
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
    Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
 
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
Source§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
    Dst: LosslessTryFrom<Src>,
 
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
    Dst: LosslessTryFrom<Src>,
Source§fn lossless_try_into(self) -> Option<Dst>
 
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
Source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
    Dst: LossyFrom<Src>,
 
impl<Src, Dst> LossyInto<Dst> for Srcwhere
    Dst: LossyFrom<Src>,
Source§fn lossy_into(self) -> Dst
 
fn lossy_into(self) -> Dst
Performs the conversion.
Source§impl<T> OverflowingAs for T
 
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
    T: OverflowingCast<Dst>,
 
fn overflowing_as<Dst>(self) -> (Dst, bool)where
    T: OverflowingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
    Src: OverflowingCast<Dst>,
 
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
    Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
 
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
Source§impl<T> SaturatingAs for T
 
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
    T: SaturatingCast<Dst>,
 
fn saturating_as<Dst>(self) -> Dstwhere
    T: SaturatingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
    Src: SaturatingCast<Dst>,
 
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
    Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
 
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> UnwrappedAs for T
 
impl<T> UnwrappedAs for T
Source§fn unwrapped_as<Dst>(self) -> Dstwhere
    T: UnwrappedCast<Dst>,
 
fn unwrapped_as<Dst>(self) -> Dstwhere
    T: UnwrappedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
    Src: UnwrappedCast<Dst>,
 
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
    Src: UnwrappedCast<Dst>,
Source§fn unwrapped_cast_from(src: Src) -> Dst
 
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> WrappingAs for T
 
impl<T> WrappingAs for T
Source§fn wrapping_as<Dst>(self) -> Dstwhere
    T: WrappingCast<Dst>,
 
fn wrapping_as<Dst>(self) -> Dstwhere
    T: WrappingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
    Src: WrappingCast<Dst>,
 
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
    Src: WrappingCast<Dst>,
Source§fn wrapping_cast_from(src: Src) -> Dst
 
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.