pub struct BufferedUartRx<'d> { /* private fields */ }Expand description
Buffered UART RX handle.
Implementations§
Source§impl<'d> BufferedUartRx<'d>
impl<'d> BufferedUartRx<'d>
Sourcepub fn new<T: Instance>(
_uart: Peri<'d, T>,
rx: Peri<'d, impl RxPin<T>>,
_irq: impl Binding<T::Interrupt, BufferedInterruptHandler<T>>,
rx_buffer: &'d mut [u8],
config: Config,
) -> Self
pub fn new<T: Instance>( _uart: Peri<'d, T>, rx: Peri<'d, impl RxPin<T>>, _irq: impl Binding<T::Interrupt, BufferedInterruptHandler<T>>, rx_buffer: &'d mut [u8], config: Config, ) -> Self
Create a new buffered UART RX.
Sourcepub fn new_with_rts<T: Instance>(
_uart: Peri<'d, T>,
rx: Peri<'d, impl RxPin<T>>,
rts: Peri<'d, impl RtsPin<T>>,
_irq: impl Binding<T::Interrupt, BufferedInterruptHandler<T>>,
rx_buffer: &'d mut [u8],
config: Config,
) -> Self
pub fn new_with_rts<T: Instance>( _uart: Peri<'d, T>, rx: Peri<'d, impl RxPin<T>>, rts: Peri<'d, impl RtsPin<T>>, _irq: impl Binding<T::Interrupt, BufferedInterruptHandler<T>>, rx_buffer: &'d mut [u8], config: Config, ) -> Self
Create a new buffered UART RX with flow control.
Sourcepub async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>
pub async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>
Read from UART RX buffer.
Waits until at least one byte is available, then reads as many bytes as
are available (up to buf.len()) and returns the number of bytes read.
Sourcepub fn blocking_read(&mut self, buf: &mut [u8]) -> Result<usize, Error>
pub fn blocking_read(&mut self, buf: &mut [u8]) -> Result<usize, Error>
Read from UART RX buffer blocking execution until done.
Sourcepub async fn fill_buf(&mut self) -> Result<&[u8], Error>
pub async fn fill_buf(&mut self) -> Result<&[u8], Error>
Wait until data is available in the RX buffer, and return a slice to it.
Call consume afterwards to mark bytes as read.
Sourcepub fn read_ready(&mut self) -> Result<bool, Error>
pub fn read_ready(&mut self) -> Result<bool, Error>
Check whether data is available in the RX buffer, i.e. whether a read would not block.
Trait Implementations§
Source§impl<'d> BufRead for BufferedUartRx<'d>
impl<'d> BufRead for BufferedUartRx<'d>
Source§impl<'d> Drop for BufferedUartRx<'d>
impl<'d> Drop for BufferedUartRx<'d>
Source§impl<'d> ErrorType for BufferedUartRx<'d>
impl<'d> ErrorType for BufferedUartRx<'d>
Source§impl<'d> Read for BufferedUartRx<'d>
impl<'d> Read for BufferedUartRx<'d>
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<'d> Read for BufferedUartRx<'d>
impl<'d> Read for BufferedUartRx<'d>
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 moreAuto Trait Implementations§
impl<'d> !RefUnwindSafe for BufferedUartRx<'d>
impl<'d> !UnwindSafe for BufferedUartRx<'d>
impl<'d> Freeze for BufferedUartRx<'d>
impl<'d> Send for BufferedUartRx<'d>
impl<'d> Sync for BufferedUartRx<'d>
impl<'d> Unpin for BufferedUartRx<'d>
impl<'d> UnsafeUnpin for BufferedUartRx<'d>
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